【问题标题】:Sql update makes datagridview disappearsql更新使datagridview消失
【发布时间】:2017-12-21 06:13:46
【问题描述】:
 private void wypelnijTabeleDanymi3(string pytanie3)
    {
        using (connection = new SqlConnection(string_polaczeniowy))
        {
            connection.Open();
            SqlCommand xquery = new SqlCommand(pytanie3, connection);
            xquery.Parameters.AddWithValue("@imie", txtImie.Text);
            xquery.Parameters.AddWithValue("@nazwisko", txtNazwisko.Text);
            xquery.Parameters.AddWithValue("@danekontaktowe", rtbDaneKontaktowe.Text);
            xquery.Parameters.AddWithValue("@idOsoby", tbIdOsoby.Text);
            SqlDataAdapter xdata = new SqlDataAdapter(xquery);
            dtsTabelaTestowa.Clear();
            xdata.Fill(dtsTabelaTestowa);
            dgTabelaTestowa.DataSource = dtsTabelaTestowa.Tables[0];
            dgTabelaTestowa.Refresh();
        }
    }

  private void btnUpdate_Click(object sender, EventArgs e)
        {
            string wartosc = "UPDATE tblStudent17 SET Imie = @imie, Nazwisko = @nazwisko, Dane_Kontaktowe = @danekontaktowe WHERE idOsoby= @idOsoby";
            wypelnijTabeleDanymi3(wartosc);
        }

有人能告诉我为什么当我单击“更新按钮”时这段代码会使 sql datagridview 消失吗?当我单击 datagridview 中的一行时,代码会用数据填充文本框,然后我可以在特定的 texbox 中写入新值,然后单击 btnUpdate 和整个sql datagridview 消失但如果我手动检查新值会正确更改。我希望它在单击 btnUpdate 时立即刷新 datagridview。我做错了什么?

【问题讨论】:

  • 在我看来,您好像在尝试使用 UPDATE 语句填充数据表?对吗?
  • 嗯,看起来像。我应该在参数下添加另一个带有“select * from tblStudent17”的sql命令吗?
  • @Mike 我会说先进行更新,然后再进行单独的选择。万一出现异常,您知道它来自哪一行
  • @LasseVågsætherKarlsen 是的,我使用 UPDATE 语句填充数据表,将单元格的值下载到适当的文本框,然后我想使用适当的文本框更改特定值,单击 Enter 并在 datagridview 中刷新该值。更改值可以,但我无法让 datagridview 正确刷新。
  • 好吧,UPDATE 语句本身根本不返回任何数据,所以这就是为什么您的数据表最终为空的原因。您可以诱使UPDATE 语句返回数据,但随后它将返回它更新的数据,而不是整个表。您应该将更新数据库中的表的行为与使用数据库中的数据更新数据表/网格视图的行为分开。

标签: c# sql .net


【解决方案1】:
 private void btnUpdate_Click(object sender, EventArgs e)
        {
            string wartosc = "UPDATE tblStudent17 SET Imie = @imie, Nazwisko = @nazwisko, Dane_Kontaktowe = @danekontaktowe WHERE idOsoby= @idOsoby";
            using (connection = new SqlConnection(string_polaczeniowy))
            {
                connection.Open();
                SqlCommand xquery = new SqlCommand(wartosc, connection);
                xquery.Parameters.AddWithValue("@imie", txtImie.Text);
                xquery.Parameters.AddWithValue("@nazwisko", txtNazwisko.Text);
                xquery.Parameters.AddWithValue("@danekontaktowe", rtbDaneKontaktowe.Text);
                xquery.Parameters.AddWithValue("@idOsoby", tbIdOsoby.Text);
                SqlDataAdapter xdata = new SqlDataAdapter(xquery);
                xdata.Fill(dtsTabelaTestowa);
            }

            wypelnijTabeleDanymi();
        }


 private void wypelnijTabeleDanymi()
        {
            using (connection = new SqlConnection(string_polaczeniowy))
            {
                connection.Open();
                SqlCommand xquery = new SqlCommand("select * from tblStudent17", connection);
                SqlDataAdapter xdata = new SqlDataAdapter(xquery);
                dtsTabelaTestowa.Clear();
                xdata.Fill(dtsTabelaTestowa);
                dgTabelaTestowa.DataSource = dtsTabelaTestowa.Tables[0];
                dgTabelaTestowa.Refresh();

            }
        }

像这样工作得很好。感谢您的帮助,不胜感激。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多