Ну, есть два способа взаимодействия с базой данных SQL Server в C #. Первый с LINQ, а второй с библиотекой SqlClient.
LINQ
Начиная с .NET 3.0 у нас был доступ к LINQ, который представляет собой довольно впечатляющий ORM и способ работы с коллекциями и списками. LINQ может работать с базой данных двумя способами. Это:
У Скотта Гу есть довольно хорошее руководство по LINQ to SQL . Я бы порекомендовал LINQ to SQL только для начала, и вы можете использовать его в дальнейшем в LINQ to Entities.
Пример select
для всех клиентов в Нью-Йорке:
var Custs = from c in Customers
where c.State = 'NY'
select c;
foreach(var Cust in Custs)
{
Console.WriteLine(Cust.Name);
}
SqlClient
Традиционный способ C # поразить базу данных SQL Server (до .NET 3.0) был через библиотеку SqlClient . По сути, вы создаете SqlConnection , чтобы открыть соединение с базой данных. Если вам нужна помощь со строками подключения, проверьте ConnectionStrings.com .
После подключения к базе данных вы будете использовать объект SqlCommand
для взаимодействия с ней. Наиболее важным свойством для этого объекта является CommandText
. Это принимает SQL в качестве языка и запускает необработанные операторы SQL для базы данных.
Если вы делаете вставку / обновление / удаление, вы будете использовать ExecuteNonQuery
метод SqlCommand
. Однако, если вы делаете выбор, вы будете использовать ExecuteReader
и возвращать SqlDataReader
. Затем вы можете перебрать SqlDataReader, чтобы получить свои результаты.
Ниже приведен код для повторного захвата всех клиентов в Нью-Йорке:
using System.Data;
using System.Data.SqlClient;
//...
SqlConnection dbConn = new
SqlConnection("Data Source=localhost;Initial Catalog=MyDB;Integrated Security=SSPI");
SqlCommand dbComm = new SqlCommand();
SqlDataReader dbRead;
dbConn.Open();
dbComm.Connection = dbConn;
dbComm.CommandText = "select name from customers where state = @state";
dbComm.Parameters.Add("@state", System.Data.SqlDbType.VarChar);
dbComm.Parameters["@state"].Value = "NY";
dbRead = dbComm.ExecuteReader();
if(dbRead.HasRows)
{
while(dbRead.Read())
{
Console.WriteLine(dbRead[0].ToString());
}
}
dbRead.Close();
dbConn.Close();
Надеюсь, это даст вам хорошее представление о том, что делает каждый подход и как узнать больше.