Если я правильно понимающие вас, у вас есть один запрос, который вы используете в нескольких различных местах в вашем коде - каждый раз, чтобы получить доступ к той же информации, только при различных обстоятельствах? И вы не знаете, как получить данные конкретных столбцов, которые вы после?
Как уже упоминалось, учебник по доступу к информации для начинающих, вероятно, будет хорошим чтением. Но вот немного быстрой и грязной информации, чтобы заставить вас подтолкнуть вас в правильном направлении. Большинство из них - это один из нескольких способов, которыми вы могли бы это сделать (в котором вы должны знать различия), это мой типично предпочтительный способ, или я просто подумал, что это будет наиболее понятным для полного новичка. Посмотрите на пару учебников после этого !
Прежде всего, если вы используете один и тот же запрос снова и снова, я предпочитаю помещать его в хранимую процедуру, если есть несколько параметров, переданных SQL. Вы должны использовать параметры, всегда (см. Пример), чтобы избежать проблем с инжектированием данных и типом. Я не знал этого, когда я впервые начал, и, таким образом, попал в плохую привычку не использовать параметры, которые было очень сложно сломать ... так что начните сейчас! В конечном итоге вы получаете базу данных обратно из базы данных ... этот набор может представлять что-либо из одного столбца данных во всю базу данных на основе данных по существу - поэтому вам необходимо ориентироваться в этом наборе данных для получения одного), которые вы действительно хотите в каждом конкретном случае (например, заполнение текстового поля одним значением и другое текстовое поле с другим значением ... оба значения находятся в том же наборе данных, нет необходимости запрашивать вашу БД для каждого текстового поля, просто эффективно запрос когда-то и вы должны иметь необходимые значения)
Animals_Table:.
AnimalID, Name , Type
1 , Frog , Amphibian
2 , Snake , Reptile
3 , Bear , Mammal
3 , Lion , Mammal
I н C#:
SqlCommand myCommand = new SqlCommand(); //The command you intend to pass to SQL
DataSet myDataSet = new DataSet(); //The Dataset you'll fill and retrieve info from
SqlConnection myConnection = new SqlConnection(Properties.Settings.Default.yourConnectionString); // I prefer my connection string to be in my project's properties. Don't put sensitive info like passwords here though
myCommand.CommandType = CommandType.Text; // In this case we're using a text command, not stored procedure. That means you're typing out your command, as a string, in c# (next line)
myCommand.CommandText = "SELECT * FROM Animals_Table WHERE [email protected]"; // @ denotes a parameter, in this case named Type
myCommand.Parameters.AddWithValue("Type", "Mammal"); //You can also do Add instead of AddWithValue - this lets/forces you to input the type information manually. It's more of a pain, but can resolve problems if c# doesn't make right assumptions
myConnection.Open(); // Open your connection
Command.Connection = myConnection; // Plug that connection into your command
SqlDataAdapter adapter = new SqlDataAdapter(Command); // Plug that command into a data adapter
adapter.Fill(myDataSet); // populate your DataSet
// Now you can use the data you've retrieved (your DataSet)
textboxReturnedAnimalName1.Text = myDataSet.Tables[0].Rows[0]["Name"]; //You want the Name field from SQL, for the first table returned, and the first row in that table
Поскольку набор данных вы извлекаться может иметь несколько таблиц, каждый с несколькими строками, вы должны указать, какие вы пытаетесь получить доступ (как правило, первые/только таблицы, и для этого простого примера, первая строка. Вы также можете сделать цикл for и перебирать строки, заменив Rows [0] на переменную int, которую вы увеличиваете каждый цикл.
Я на самом деле не скомпилировал и протестировал вышеуказанный код, но считаю, что он должен работать. Если нет, базовая концепция существует, по крайней мере, и я уверен, что вы можете работать с этим и исправить любые опечатки, которые я мог бы иметь;)
звучит так, как будто вам нужен базовый учебник по доступу к данным. Не то, что этот сайт может предоставить. –
ну, при условии, что пример будет работать как ответ тогда. – Tengiz