以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 XML 与 数据库 』  (http://bbs.xml.org.cn/list.asp?boardid=17)
----  高手请进,小弟我急死了  (http://bbs.xml.org.cn/dispbbs.asp?boardid=17&rootid=&id=25155)


--  作者:qfjordan
--  发布时间:12/8/2005 5:27:00 PM

--  高手请进,小弟我急死了
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

String updateCmd = "UPDATE Authors SET au_id = @Id, au_lname = @LName, au_fname = @FName, phone = @Phone, "
+ "address = @Address, city = @City, state = @State, zip = @Zip, contract = @Contract where au_id = @Id";
//应该了解ADO.net中的参数化编程吧 这里给解释一下!!???
还有下面的,不知所云??????

SqlCommand myCommand = new SqlCommand(updateCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11));
myCommand.Parameters.Add(new SqlParameter("@LName", SqlDbType.NVarChar, 40));
myCommand.Parameters.Add(new SqlParameter("@FName", SqlDbType.NVarChar, 20));
myCommand.Parameters.Add(new SqlParameter("@Phone", SqlDbType.NChar, 12));
myCommand.Parameters.Add(new SqlParameter("@Address", SqlDbType.NVarChar, 40));
myCommand.Parameters.Add(new SqlParameter("@City", SqlDbType.NVarChar, 20));
myCommand.Parameters.Add(new SqlParameter("@State", SqlDbType.NChar, 2));
myCommand.Parameters.Add(new SqlParameter("@Zip", SqlDbType.NChar, 5));
myCommand.Parameters.Add(new SqlParameter("@Contract", SqlDbType.NVarChar,1));
myCommand.Parameters["@Id"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];
//这个地方忘了告诉大家,我们必须在DataGrid中设置DataKeyField属性,MyDataGrid.DataKeys[(int)e.Item.ItemIndex]才能取得想要的关键字

int numCols = e.Item.Cells.Count;
for (int i=2; i<numCols-1; i++) //skip first, second and last column
{
String colvalue =((System.Web.UI.WebControls.TextBox)e.Item.Cells[i].Controls[0]).Text;
//中间你最好加上输入验证,然后再执行下列语句赋值给参数。

myCommand.Parameters[cols[i-1]].Value = colvalue;
}

myCommand.Connection.Open();
try
{
//更新数据

myCommand.ExecuteNonQuery();
//恢复只读状态

MyDataGrid.EditItemIndex = -1;
}
catch (SqlException exc)
{
    //出错处理

}
myCommand.Connection.Close();
BindGrid();//重新绑定数据,用的还是我原来写的那样的函数

[[color=#6600FF]size=4]我使用,web应用程序做的,最好能给提供各更好一点的DataGrid数据更新的程序,感觉上面的好像有不少错误,本人初学,多多帮助!!先谢了。。。。。。。。[/size][/color]


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
6,644.531ms