Я использую класс SqlHelper, который имеет общие методы для операций CRUD.SqlHelper DataAdapter
public static void Fill(DataSet dataSet, String procedureName)
{
SqlConnection oConnection = new SqlConnection(DBInterface.ConnectionString);
SqlCommand oCommand = new SqlCommand(procedureName, oConnection);
oCommand.CommandType = CommandType.StoredProcedure;
SqlDataAdapter oAdapter = new SqlDataAdapter();
oAdapter.SelectCommand = oCommand;
oConnection.Open();
using (SqlTransaction oTransaction = oConnection.BeginTransaction())
{
try
{
oAdapter.SelectCommand.Transaction = oTransaction;
oAdapter.Fill(dataSet);
oTransaction.Commit();
}
catch
{
oTransaction.Rollback();
throw;
}
finally
{
if (oConnection.State == ConnectionState.Open)
oConnection.Close();
oConnection.Dispose();
oAdapter.Dispose();
}
}
}
Сейчас в моем коде, я называю этот метод как,
private void BindCustomers()
{
DataSet dsCust = new DataSet();
SqlHelper.Fill(dsCust, "getCustomers");
--then I bind this dataset to datagridview
}
Это все работает отлично. Теперь я хочу обновить данные в базе данных. Но я смущен, как я могу назвать DataAdatpaer.Update (dataset) здесь, чтобы обновить изменения, внесенные в datagridview в базу данных. Возможно ли это здесь? Или мне нужно сделать это условно, чтобы найти обновленную строку и вызвать функцию ExecuteNonQuery в SqlHelper? Есть ли что-нибудь, что можно сделать для использования dataadapter.update (ds) Спасибо
Единый оператор выбора, кажется, не нуждается в операции. –