【发布时间】:2020-02-05 18:08:13
【问题描述】:
我在 c#.net 中创建了一个简单的 crud。添加后记录记录将显示在 datagridview 本身上。但我做不到。到目前为止我尝试过的代码附在下面。
代码
sql = "insert into student(stname,course,fee)values(@stname,@course,@fee)";
con.Open();
cmd = new SqlCommand(sql, con);
cmd.Parameters.AddWithValue("@stname", stname);
cmd.Parameters.AddWithValue("@course", course);
cmd.Parameters.AddWithValue("@fee",stfee);
load();
dataGridView1.Update();
dataGridView1.Refresh();
数据加载到 datagridview
public void load()
{
try
{
string sql;
sql = "select * from student";
cmd = new SqlCommand(sql, con);
con.Open();
dr = cmd.ExecuteReader();
dee = new SqlDataAdapter(sql, con);
while (dr.Read())
{
dataGridView1.Rows.Add(dr[0], dr[1], dr[2], dr[3]);
}
con.Close();
}
catch(Exception ex)
{
}
finally
{
con.Close();
cmd.Dispose();
}
}
【问题讨论】:
-
快速笔记:第一个代码块,你没有执行任何东西,为什么要打开连接和命令?使用
using语句处理不再需要的对象。不要使用AddWithValue,使用Add并指定数据类型。具体来说,您需要执行第一个代码块来插入数据,然后然后执行另一个来获取它。 -
永远不要使用空接。这就是我称之为 try/squelch 的反模式。没有什么比发现错误更糟糕的了,然后像什么都没发生一样对待它。
标签: c# sql-server datagridview sqldatareader sqlcommand