【发布时间】:2014-11-11 19:09:28
【问题描述】:
我知道有人问过这个问题,但我不明白为什么这个操作如此复杂。
所以我有一个Produs 表
SELECT TOP 1000 [IDProdus]
,[Denumire]
,[UM]
,[Pret]
,[IDFurnizor]
,[IDCategorie]
,[IDTipProdus]
,[OperatorAdaugare]
,[DataAdaugare]
,[OperatorModificare]
,[DataModificare]
FROM [Proiect].[dbo].[Produse]
这是我的表格的列。我通过 Visual Studio 中的 Data Sources GUI 添加了 DataSet 与此表的内容(我没有编写实际代码)。
现在我有一个程序可以在这个表中插入一个新行。
代码如下:
private void dToolStripMenuItem_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("connection-string-here");
string Query = "spGE_getProduse_Edit"; // Stored procedure name.
int Integer;
conn.Open();
// Creating SqlCommand object
SqlCommand com = new SqlCommand(Query, conn );
// Here we declaring command type as stored procedure:
com.CommandType = CommandType.StoredProcedure;
com.Parameters.AddWithValue("@IDProdus", 0);
com.Parameters.AddWithValue("@Denumire ",
denumireTextBox.Text.ToString());
com.Parameters.AddWithValue("@UM ",
uMTextBox.Text.ToString());
com.Parameters.AddWithValue("@Pret ",
Double.Parse(pretTextBox.Text));
com.Parameters.AddWithValue("@IDFurnizor ",
Int16.Parse(iDFurnizorTextBox.Text));
com.Parameters.AddWithValue("@IDCategorie ",
Int16.Parse(iDCategorieCombobox.SelectedValue.ToString()));
com.Parameters.AddWithValue("@IDTipProdus ",
Int16.Parse(iDTipProdusCombobox.SelectedValue.ToString()));
com.Parameters.Add("@IDProdusScris", SqlDbType.BigInt);
com.Parameters["@IDProdusScris"].Direction =
ParameterDirection.Output;
com.ExecuteNonQuery();
conn.Close();
Integer =
Int32.Parse(com.Parameters["@IDProdusScris"].Value.ToString());
}
现在插入后我想用新记录更新myGrid。我试过了
dataGridView1.Refresh(); 和 dataGridView1.Update();,没有结果。
有没有办法更新网格?对于 VS 来说,这似乎是一项简单的任务,但我找不到简单的解决方案。
我在 MSDN 上只看到和阅读的内容看起来像是一些非常复杂的操作,只是为了简单的刷新。 (它是关于获取行的状态并在添加状态时插入行)。
那么有什么简单的方法可以做到这一点,或者我必须编写一个方法来每次我想要刷新我的dataGridView(我的意思是重新查询我的表并重建dataSource)
【问题讨论】:
-
是的,你必须写一个方法
标签: c# sql-server datagridview