本人绑定一个DataGrid,其中materials是DataGrid的名,conn代表连接数据库时连接open与否.
private void OpenDB1()
{
try
{
string sql="select * from 材料信息全";
conn.open();
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"A"
;
materials.DataSource=ds.Tables["A"];
materials.DataBind();
conn.Close();
}
catch(Exception)
{
Response.Write("登录超时!"
;
string sql="select * from 材料信息全";
conn.open();
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"A"
;
materials.DataSource=ds.Tables["A"];
materials.DataBind();
conn.Close();
Response.End();
}
}
public void add_Click(object sender, System.EventArgs e)
{
string sql4 = "select * from 材料信息全 where 材料名称='"+clmctextbox.Text+"'";
conn.open();
SqlCommand cmd=new SqlCommand(sql4,conn);
SqlDataReader dr=cmd.ExecuteReader();
if(dr.Read())
{
Response.Write("<script>alert('该材料名称已经存在');</script>"
;
dr.Close();
conn.Close();
}
else
{
dr.Close();
string tt=clmctextbox.Text.Trim();
if(tt==""
{
Response.Write("<script>alert('材料名称不能为空');</script>"
;
conn.Close();
}
else
{
string sql12="insert into 材料信息([材料名称],[交件人],[收件日期],[收件人],[页数],[份数]) values(";
sql12+="'"+clmctextbox.Text+"','"+jjr.Text+"','"+sjrq.Text+"','"+sjr.Text+"','"+ys.Text+"','"+fs.Text+"')";
SqlCommand cmd12 = new SqlCommand(sql12,conn);
cmd12.ExecuteNonQuery();
conn.Close();
}
}
this.OpenDB1();
}
public void modify_Click(object sender, System.EventArgs e)
{
string sql41 = "select * from 材料信息全 where 材料名称='"+clmctextbox.Text+"'";
conn.open();
SqlCommand cmd41=new SqlCommand(sql41,conn);
SqlDataReader dr=cmd41.ExecuteReader();
if(!dr.Read())
{
Response.Write("<script>alert('该材料名称不存在');</script>"
;
dr.Close();
conn.Close();
}
else
{
dr.Close();
string tt=clmctextbox.Text.Trim();
if(tt==""
{
Response.Write("<script>alert('材料名称不能为空');</script>"
;
conn.Close();
}
else
{
string sql31="update 材料信息 set 材料名称='"+clmctextbox.Text+"',交件人='"+jjr.Text+"',收件日期='"+sjrq.Text+"',";
sql31+="收件人='"+sjr.Text+"',页数='"+ys.Text+"',份数='"+fs.Text+"' where 材料名称='"+clmctextbox.Text+"'";
SqlCommand cmd11 = new SqlCommand(sql31,conn);
cmd11.ExecuteNonQuery();
conn.Close();
Response.Write("<script>alert('您的信息已经修改!请选择其他操作!');</script>"
;
}
}
this.OpenDB1();
}
public void delete_Click(object sender, System.EventArgs e)
{
this.delete.Attributes["onclick"]="javascript:return confirm('你确认要删除吗?');";
string sql14 = "select * from 材料信息全 where 材料名称='"+clmctextbox.Text+"'";
conn.open();
SqlCommand cmd14=new SqlCommand(sql14,conn);
SqlDataReader dr=cmd14.ExecuteReader();
if(!dr.Read())
{
dr.Close();
conn.Close();
Response.Write("<script>alert('该材料名称不存在');</script>"
;
}
else
{
dr.Close();
string tt=clmctextbox.Text.Trim();
if(tt==""
{
conn.Close();
Response.Write("<script>alert('材料名称不能为空');</script>"
;
}
else
{
/******************删除信息*************************/
string sql12="delete from 材料信息 where 材料名称='"+clmctextbox.Text+"'";
SqlCommand cmd12 = new SqlCommand(sql12,conn);
cmd12.ExecuteNonQuery();
conn.Close();
this.OpenDB1();
Response.Write("<script>alert('您的信息已经修改!请选择其他操作!');</script>"
;
}
}
}
操作之后发现,点击add_Click()时,能够在DataGrid也就是materials里添加新的一行数据,而且DataGrid也更新,无论添加多少行都行,但是在选择一行后,修改数据,点击modify_Click,相连接的数据库已经更改了,但是DataGrid也就是materials没有更新,仍旧是原有的形状.这是怎么回事.如果说有问题,那么在add_Click中materials就应该不刷新,可是在add_Click中刷新了,但是在modify_Click中又不刷新,我也实现新的捆绑了,怎么回事呢?
那么如何实现让所有功能实现呢?????