데이터 집합을 데이터베이스에 저장하려고합니다. 다른 클래스의 데이터 세트가 있습니다. 이제 사용자가 datagridview에서 양식을 변경하고 변경된 데이터 세트를 데이터베이스에 저장해야합니다.데이터베이스에 데이터 집합 저장
아래 코드를 사용하고 있습니다. 오류는 발생하지 않지만 데이터는 데이터베이스에 저장되지 않습니다.
public class myForm
{
DataSet myDataSet = new DataSet();
public void PouplateGridView()
{
try
{
SqlService sql = new SqlService(connectionString); // Valid Connection String, No Errors
myDataSet = sql.ExecuteSqlDataSet("SELECT * FROM Qualification"); // Returns a DataSet
myDataGridView.DataSource = myDataSet.Tables[0];
myDataGridView.AutoGenerateColumns = true;
myDataGridView.AutoResizeColumns();
}
catch (Exception ex)
{
MessageBox.Show(ex.InnerException + Environment.NewLine + ex.Message, "Error");
this.Close();
}
}
private void btnSave_Click(object sender, EventArgs e)
{
//myDataSet.AcceptChanges();EDIT:Don't know why, but this line wasn't letting the chane in db happen.
SqlCommand sc = new SqlCommand("SELECT * FROM Qualification", sql.Connection); //ADDED after Replies
SqlDataAdapter da = new SqlDataAdapter();
SqlCommandBuilder scb = new SqlCommandBuilder(da); //ADDED after replies
da.Update(myDataSet.Tables[0]);
}
}
public class mySqlService
{
public DataSet ExecuteSqlDataSet(string sql)
{
SqlCommand cmd = new SqlCommand();
this.Connect();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
cmd.CommandTimeout = this.CommandTimeout;
cmd.Connection = _connection;
if (_transaction != null) cmd.Transaction = _transaction;
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
da.SelectCommand = cmd;
da.Fill(ds);
da.Dispose();
cmd.Dispose();
if (this.AutoCloseConnection) this.Disconnect();
return ds;
}
}
여기서 내가 뭘 잘못하고 있니? datset을 저장하는 방법은 웹상에 있습니다. datset을 만들고, 편집하고, 같은 클래스에 저장하는 등의 방법이 있습니다. 그러나 mySqlService 클래스에 select 데이터 세트 메소드를 갖고 싶습니다. 어떻게하면 데이터 집합을 데이터베이스에 저장할 수 있습니까?
편집 : 코드 작업을 수행하는 데 필요한 세 줄을 주석으로 표시했습니다. 이제 코드가 작동합니다. 업데이트는 SqlDataAdapter를의 SelectCommand
과 함께 InsertCommand
, DeleteCommand
및 UpdateCommand
속성을 구성하거나 암시 적으로 이러한 명령을 구성 SqlCommandBuilder 개체를 생성하는 데 필요한 SqlDataAdapter
의 방법을 실행하기 위해
감사합니다. 작동했습니다 :) –