В чем разница в вставке значений с использованием SQLCommand против использования адаптера данных в ado.net?C#

Место общения программистов C#
Ответить
Anonymous
 В чем разница в вставке значений с использованием SQLCommand против использования адаптера данных в ado.net?

Сообщение Anonymous »

Я новичок в Ado.net, и я только что наткнулся на адаптеры данных и наборы данных, и я просто не могу обернуть голову на их концепцию. Какую разницу этот код: < /p>
string firstName = "Jane";
string lastName = "Doe";
string age = 25;

string insertString = @"INSERT INTO dbo.Customer (FirstName, LastName, Age)
VALUES (@FirstName, @LastName, @Age)";

SqlCommand insertCommand = new SqlCommand(insertString, connection);

insertCommand.Parameters.Add("@FirstName", System.Data.SqlDbType.NVarChar, 100).Value = firstName;
insertCommand.Parameters.Add("@LastName", System.Data.SqlDbType.NVarChar, 100).Value = lastName;
insertCommand.Parameters.Add("@Age", System.Data.SqlDbType.Int).Value = age;

Console.WriteLine("Record has been added.");

connection.Open();
insertCommand.ExecuteNonQuery();
< /code>
И этот код есть? < /p>
SqlCommand selectCommand = new SqlCommand("SELECT * FROM dbo.Customer", connection);
SqlCommand insertCommand = new SqlCommand("INSERT INTO dbo.Customer (FirstName, LastName, Age) VALUES (@FirstName, @LastName, @Age)", connection);

insertCommand.Parameters.Add(new SqlParameter("@FirstName", SqlDbType.NVarChar, 30, "FirstName"));
insertCommand.Parameters.Add(new SqlParameter("@LastName", SqlDbType.NVarChar, 50, "LastName"));
insertCommand.Parameters.Add(new SqlParameter("@Age", SqlDbType.Int, 0, "Age"));

SqlDataAdapter dataAdapter = new SqlDataAdapter();

dataAdapter.SelectCommand = selectCommand;
dataAdapter.InsertCommand = insertCommand;

connection.Open();

DataSet dataSet = new DataSet("DataSet");

dataAdapter.Fill(dataSet, "Customer");

DataRow dataRow = dataSet.Tables[0].NewRow();
dataRow["FirstName"] = "Jane";
dataRow["LastName"] = "Doe";
dataRow["Age"] = 25;

dataSet.Tables[0].Rows.Add(dataRow);

dataAdapter.Update(dataSet, "Customer");

Console.WriteLine("Record has been added.");
< /code>
Почему второй код использует набор данных вместо того, чтобы просто вставить значения непосредственно в базу данных? И какой более оптимальный подход в вставке значений? Первый или второй?

Подробнее здесь: https://stackoverflow.com/questions/733 ... mand-vs-us
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»