我做了一个很简单的留言本,"删除"按钮能实现其功能,但"编辑"按钮,能展开成为"更新"\"取消",但更新功能不能实现,下边是代码,请高手赐教,谢谢! 字段:主题-topic 姓名-name 内容-content 时间-singdate
/连接数据库
string strconn=ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn=new SqlConnection(strconn);
cn.Open();
// string UpdateCmd="UPDATE see SET topic=@stopic,content=@scontent,singdate=@ssingdate Where name=@sname";
// SqlCommand cm = new SqlCommand(UpdateCmd,cn);
SqlCommand cm=new SqlCommand("update_see_2",cn);
cm.CommandType=CommandType.StoredProcedure;
cm.Parameters.Add(new SqlParameter("@stopic",SqlDbType.VarChar,50));
cm.Parameters.Add(new SqlParameter("@sname",SqlDbType.VarChar,50));
cm.Parameters.Add(new SqlParameter("@scontent",SqlDbType.VarChar,400));
cm.Parameters.Add(new SqlParameter("@ssingdate",SqlDbType.DateTime,8));
// cm.Parameters["@sname"].Value = DataGrid1.DataKeys[e.Item.ItemIndex];
//string[] Cols = new string[] {"@stopic","@sname","@scontent","@ssingdate"};
//int Numcols = e.Item .Cells.Count;
string colvalue=((TextBox)e.Item.Cells[1].Controls[0]).Text;
cm.Parameters["@stopic"].Value=colvalue;
// colvalue=((TextBox)e.Item.Cells[2].Controls[0]).Text;
// cm.Parameters["@sname"].Value=colvalue;
colvalue=((TextBox)e.Item.Cells[3].Controls[0]).Text;
cm.Parameters["@scontent"].Value=colvalue;
cm.Parameters["@sname"].Value=DataGrid1.DataKeys[e.Item.ItemIndex];
try
{
cm.ExecuteNonQuery();
Lbl_note.Text = "<b>修改成功</b><br>";
DataGrid1.EditItemIndex = -1; }
catch(SqlException)
{
// if(Exp.Number ==2627)
Lbl_note.Text="错误,具有相同的主索引的数据已经存在.";
// else
Lbl_note.Text = "错误,无法修改";
Lbl_note.Style["color"]="red";
}
cm.Connection.Close();
BindGrid();public void BindGrid()
{
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
string sql="select * from see order by singdate desc";
// SqlCommand cm = new SqlCommand(sql,cn);
SqlDataAdapter da = new SqlDataAdapter(sql,cn);
DataSet ds = new DataSet();
da.Fill(ds,"see");
DataGrid1.DataSource = ds;
DataGrid1.DataBind();
}
/连接数据库
string strconn=ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn=new SqlConnection(strconn);
cn.Open();
// string UpdateCmd="UPDATE see SET topic=@stopic,content=@scontent,singdate=@ssingdate Where name=@sname";
// SqlCommand cm = new SqlCommand(UpdateCmd,cn);
SqlCommand cm=new SqlCommand("update_see_2",cn);
cm.CommandType=CommandType.StoredProcedure;
cm.Parameters.Add(new SqlParameter("@stopic",SqlDbType.VarChar,50));
cm.Parameters.Add(new SqlParameter("@sname",SqlDbType.VarChar,50));
cm.Parameters.Add(new SqlParameter("@scontent",SqlDbType.VarChar,400));
cm.Parameters.Add(new SqlParameter("@ssingdate",SqlDbType.DateTime,8));
// cm.Parameters["@sname"].Value = DataGrid1.DataKeys[e.Item.ItemIndex];
//string[] Cols = new string[] {"@stopic","@sname","@scontent","@ssingdate"};
//int Numcols = e.Item .Cells.Count;
string colvalue=((TextBox)e.Item.Cells[1].Controls[0]).Text;
cm.Parameters["@stopic"].Value=colvalue;
// colvalue=((TextBox)e.Item.Cells[2].Controls[0]).Text;
// cm.Parameters["@sname"].Value=colvalue;
colvalue=((TextBox)e.Item.Cells[3].Controls[0]).Text;
cm.Parameters["@scontent"].Value=colvalue;
cm.Parameters["@sname"].Value=DataGrid1.DataKeys[e.Item.ItemIndex];
try
{
cm.ExecuteNonQuery();
Lbl_note.Text = "<b>修改成功</b><br>";
DataGrid1.EditItemIndex = -1; }
catch(SqlException)
{
// if(Exp.Number ==2627)
Lbl_note.Text="错误,具有相同的主索引的数据已经存在.";
// else
Lbl_note.Text = "错误,无法修改";
Lbl_note.Style["color"]="red";
}
cm.Connection.Close();
BindGrid();public void BindGrid()
{
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
string sql="select * from see order by singdate desc";
// SqlCommand cm = new SqlCommand(sql,cn);
SqlDataAdapter da = new SqlDataAdapter(sql,cn);
DataSet ds = new DataSet();
da.Fill(ds,"see");
DataGrid1.DataSource = ds;
DataGrid1.DataBind();
}
指定的转换无效。
TextBox CurrentTextBox = (TextBox)e.Item.Cells[i].Controls[0];
或者用FindControl(TextBoxId)