Anta писал(а):1. Подключаюсь к БД прграммно (коннкшен стринг), на данный момент прописан мой логин и пароль для подключения к БД оракл. В дальнейшем, чтоб подключиться к определенной схеме (к определнному городу) нужно будет ввести код города и пароль (которые созданны в Оракл).
Как сделать так, чтобы при запуске программы появлялось окно с запросом логина и пароля, и если данные введены правильно, происходило подключение к определенной схеме (городу). Нужно создать дополнительную форму для ввода логина и пароля? при вводе нужно обратится к БД Оракл для проверки данных(логина и пароля)?
Anta писал(а):2. Моя программа делает запрос на выборку(из одной единственной таблицы) и выводит разельтат строки в textbox_ы: пользователь задаёт условие (выбирает код из комбобокса) и нажимает на кнопку "выбрать". Перед тем как осуществить следующий запрос и получить результат в textbox_ы мне нужно очистить все textbox_ы. ( результатом запроса является всегда только одна строка и не больше, такова специфика этой таблицы)
Как сделать так, чтоб при следующем нажатии на кнопку "выбрать" textbox_ы очистились и в них появился результат следующей выборки? На данный момент они очищаются, но заполнение происходит только после второго нажатия на кнопку и они заполняются старыми данными. Я провела эксперемент и одновременно вывожу результаты в DataGrid: там строки просто добавляются. Выборка данных через Dataset, dataAdapter, datatable, rows. Что нужно очисить чтоб появлялся результат следующего запроса в textbox, а не старые данные и это происходило при единоразовом нажатии на кнопку?
Функция Текст_Бокс_Клик
Вызов функции очищения
Вызов функции запроса данных
Вызов функции заполнения текстбоксов на основе полученных данных
Anta писал(а):3. Программка разрабатывается в Visual Studio12 prerelise (кампания купит вскоре VS 12). Я хотела поработать на другом компьютере, где стоит триал версия Visual Studio12 , но программа не открывается, формы нет и выдают какие-ошибки..Подскажите, в чем проблема?
Спасибо за ранее.
Sqlstr= “Select first name from table1 where name=” ’ “+combobox1.text+ “ ’ “,
Где значение combobox1.text может быть равно О’Хенри, на данный момент запрос обрывается на апострофе после первой буквы О в фамилии,
вместо ё получаю е, вместо й получаю и
HandKot писал(а):Sqlstr= “Select first name from table1 where name=” ’ “+combobox1.text+ “ ’ “,
Где значение combobox1.text может быть равно О’Хенри, на данный момент запрос обрывается на апострофе после первой буквы О в фамилии,
апострофы надо дублироватьвместо ё получаю е, вместо й получаю и
это конечно странно, в базе точно Ё и Й?
Anta писал(а):то есть в самой таблице бд нужно продублировать апостроф?
Anta писал(а):эээ, есть вот такие фамилии-латинскими буквами: Pagé, André, Noël
Qwertiy писал(а):Нет конечно...
И вообще, ты на каком языке пишешь?
Qwertiy писал(а):Кодировка.
Anta писал(а):на vb в visual studio 12
public static IList<Award> GetAllAwardsOfUser(int UserId)
{
List<Award> Result = new List<Award>();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["UsersAwards"].ConnectionString))
{
SqlCommand cmd = new SqlCommand()
{
CommandText = "select [Id], [Text] from [Awards] where [UserId]=@user",
Connection = con
};
cmd.Parameters.AddWithValue("@user", UserId);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
Result.Add(new Award((int)reader["Id"], (String)reader["Text"], UserId));
}
return Result;
}
Qwertiy писал(а):Anta писал(а):на vb в visual studio 12
Ну и нечего тогда строку запроса конкатенацией строить. Есть же класс SqlCommand, который сам подставляет параметры и делает это именно так, как нужно.
разработчик БД Оракл поставил задание, разработать для него программу, которая подключает его к трем БД как администратора (список выбора БД-первый этап)( упомянул о том, что для него не вопрос , что логин и пасс прописанны прямо в коде (упс) .То есть для начала выбрать БД и подключяемся, потом выпадает список схем (только те, котрые он создал для работы с данными), потом, на основании имени выбранной схемы, он будет осуществлять операции с 2-3 мя таблицами (изменение, добавление данных), эти данные служат параметрами для других таблиц, для работы в автокаде. Вот поэтому в моих запросах присутсвуют обращения к контролам.Qwertiy писал(а):В твоём подходе я так и не разобрался. Просто говорю, что надо использовать специализированный класс, который гарантированно помещает в базу данные именно так как надо и не допускает SQL-injection..
Anta писал(а):Sqlstr= “Select first name from table1 where name=” ’ “+combobox1.text+ “ ’ “,
Где значение combobox1.text может быть равно О’Хенри, на данный момент запрос обрывается на апострофе после первой буквы О в фамилии
Sqlstr= “Select first name from table1 where name=” ’ “+Replace(combobox1.text, "'", "''")+ “ ’ “,"
Anta писал(а):эээ, есть вот такие фамилии-латинскими буквами: Pagé, André, Noël
HandKot писал(а):как-то так
Dim Cmd As New SqlCommand
With Cmd
.CommandText = "Select first name from table1 where name=@name"
.Connection = Con
.Parameters.AddWithValue("@name", combobox1.text);
End With
HandKot писал(а):тут, думаю, проблема в контролах
Qwertiy писал(а):Надо через SqlCommand!
Anta писал(а):потом, на основании имени выбранной схемы, он будет осуществлять операции с 2-3 мя таблицами (изменение, добавление данных)
HandKot писал(а):согласен, но беря во внимание
HandKot писал(а):иногда проще создавать запрос динамически
Qwertiy писал(а):HandKot писал(а):как-то так
"Как-то так" не надо. Надо через SqlCommand!
спасибо, попробую этот вариант!HandKot писал(а):тут, думаю, проблема в контролах
Стандартные контролы замечательно работают с юникодом. Проблема с базой.
Anta писал(а):Подскажите, а каким образом можно передать значение строки подключения в другое предложение
Anta писал(а):как прописать корректно путь к этому второму приложению
Anta писал(а):Для вызова использовать Shell?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2