Если я правильно вас понимаю, у вас есть один запрос, который вы используете в нескольких разных местах вашего кода - каждый раз, чтобы получить доступ к одной и той же информации, только при разных обстоятельствах? И вы не уверены, как получить конкретные данные столбца, которые вы ищете?
Как уже упоминалось, учебник для начинающих по доступу к данным, вероятно, будет хорошим чтением. Но вот немного быстрой и грязной информации, чтобы подтолкнуть вас в правильном направлении. В большинстве случаев это либо один из нескольких способов сделать это (в котором вы должны знать различия), это мой типичный предпочтительный способ, или я просто подумал, что это будет наиболее понятным для полного новичка. Посмотрите на пару уроков после этого. !
Прежде всего, если вы используете один и тот же запрос снова и снова, я предпочитаю помещать его в хранимую процедуру, если в SQL передано несколько параметров. Вы должны использовать параметры всегда (см. Пример), чтобы избежать проблем с вводом данных и приведением типов. Я не знал этого, когда только начинал, и, таким образом, приобрел дурную привычку не использовать параметры - что было очень трудно сломать ... так что начните сейчас! В конечном итоге вы получаете набор данных обратно из базы данных ... этот набор может представлять что угодно, от одного столбца данных до всей базы данных, по существу, так что вам нужно перемещаться по этому набору данных результатов, чтобы добраться до одного (нескольких). ) вы на самом деле хотите в каждом конкретном случае (например, заполнение текстового поля одним значением и другого текстового поля другим значением ... оба значения находятся в наборе одинаковых данных, нет необходимости запрашивать вашу БД для каждого текстового поля просто эффективно запросите его один раз, и вы должны получить нужные значения.)
Animals_Table:
AnimalID, Name , Type
1 , Frog , Amphibian
2 , Snake , Reptile
3 , Bear , Mammal
3 , Lion , Mammal
В 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 Type=@Type"; // @ 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, которую вы увеличиваете в каждом цикле.
На самом деле я не скомпилировал и не протестировал приведенный выше код, но считаю, что он должен работать. Если нет, то, по крайней мере, есть основная концепция, и я уверен, что вы можете воспользоваться этим и исправить любые опечатки, которые у меня могли быть;)