2017-04-13 10 views
0

いつでも私はそれがないすべてのデータを保存しtrick.Yourコードを行うことができます上記私はdatagridviewを保存しているときはいつでも、それらがSQLテーブルにあってもすべてのレコードを保存します。どうすればこれを防ぐことができますか?

  using (SqlConnection con = new SqlConnection(conn)) 
      { 
       string query = "INSERT INTO dbo.[Ledger_" + tbpg.Text + "] VALUES(@Sno, @Date, @Particulars, @Credit, @Debit, @Balance)"; 
       query += "DELETE FROM dbo.[Ledger_"+tbpg.Text+"] WHERE Date IS NULL;"; 
       using (SqlCommand cmd = new SqlCommand(query, con)) 
       { 

        cmd.Parameters.Add("@Sno", SqlDbType.Int).Value = row.Cells["Sno"].Value ?? (object)DBNull.Value; 
        cmd.Parameters.Add("@Date", SqlDbType.Date).Value = row.Cells["Date"].Value ?? (object)DBNull.Value; 
        cmd.Parameters.Add("@Particulars", SqlDbType.VarChar).Value = row.Cells["Particulars"].Value ?? (object)DBNull.Value; 
        cmd.Parameters.Add("@Credit", SqlDbType.Int).Value = row.Cells["Credit"].Value ?? (object)DBNull.Value; 
        cmd.Parameters.Add("@Debit", SqlDbType.Int).Value = row.Cells["Debit"].Value ?? (object)DBNull.Value; 
        cmd.Parameters.Add("@Balance", SqlDbType.Int).Value = row.Cells["Balance"].Value ?? (object)DBNull.Value; 




        con.Open(); 
        cmd.ExecuteNonQuery(); 
        con.Close(); 
       } 
      } 
+0

これはすべてのレコードの意味を保存していますか? –

+0

は、いくつかの行を編集するようなので、[保存]ボタンをクリックすると、すでにテーブルにあるすべての行がテーブルに保存されます。 –

答えて

0
//namespaces 
public partial class Database_Manager : Form 
{ 
    SqlDataAdapter sda; 
    SqlCommandBuilder scb; 
    DataTable dt; 
    public Database_Manager() 
    { 
     InitializeComponent(); 
    } 

    private void Database_Manager_Load(object sender, EventArgs e) 
    { 
     labeltitle.Text = "Select the table you want to edit."; 
    } 

    private void dbupdate() 
    { 
     try { 
      scb = new SqlCommandBuilder(sda); 
      sda.Update(dt); 
      MessageBox.Show("Update Successful!"); 
     } 
     catch(Exception es) 
     { 
      MessageBox.Show(es.Message); 
     } 
     } 

    private void buttonupdate_Click(object sender, EventArgs e) 
    { 
     dbupdate(); 
    } 

コードを挿入された行がDataGridViewのからのレコードを挿入することを、あなたが持っているので、ないのGridViewのデータを保存していますどの行を考慮すべきかを明示的に定義して、すべてのdatagridview行を挿入することができます。 提供されたコードは、既存の行の更新を検出し、新しい行を挿入します。

関連する問題