簡體   English   中英

ADO.NET實體數據模型

[英]ADO.NET entity data model

我使用bindingNavigatorDeleteItem_Click編寫用於從數據庫中刪除所選行的代碼。但它無法正常工作。 而且我也沒有收到任何錯誤。請幫助我。

    private void bindingNavigatorDeleteItem_Click(object sender,EventArgs e)
    {
        try
        {
            int i = nODEDataGridView.Rows.Count;

            if (MessageBox.Show("Delete?", "Confirm Delete", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {

                    SqlConnection sc = new SqlConnection("Data Source=.;Initial Catalog=SDHDB;Integrated Security=True");
                    SqlCommand cmd = new SqlCommand();

                    cmd.Parameters.AddWithValue("@LINKID", SqlDbType.Int).Value = nODEDataGridView;
                    sc.Open();
                    cmd.CommandText = "DELETE * FROM NODE WHERE LINKID=";


                    da.Update(ds, "NODE");
                    cmd.Parameters.AddWithValue("@LINKID", SqlDbType.Int).Value = i;
                    int rows = cmd.ExecuteNonQuery();

                    sc.Close();
                    if (rows > 0)
                        MessageBox.Show("Success");
                    else
                        MessageBox.Show("Failure");

                    nODEBindingSource.RemoveCurrent();
                }
                else

                    MessageBox.Show("Abort");
            }

        catch
        {
        }

您嘗試定義命令文本之前添加參數值。 而且您甚至沒有在命令文本中定義參數。

cmd.CommandText = "DELETE * FROM NODE WHERE LINKID = @LINKID";
cmd.Parameters.AddWithValue("@LINKID", SqlDbType.Int).Value = nODEDataGridView;

您嘗試刪除代碼中包含nODEDataGridViewi作為LINKID的行,這實在令人困惑。 我在代碼中看不到任何dads

作為最佳實踐,使用using語句來處置您的SqlConnectionSqlCommandSqlDataAdapter (如果有),而不是手動調用.Close()方法。 也盡量避免使用AddWithValue 有時可能會產生意外結果 使用.Add()方法,它的重載。

最后,請在編寫更多有關它的代碼之前,先閱讀一本關於ADO.NET的好書。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM