在使用DataSet操作数据库时出现了一个奇怪的问题,进行插入操作,一切正常,但更新和删除却无法使用(使用SQL语句操作一切正常),提示:
对于不返回任何键列信息的 SelectCommand 不支持 DeleteCommand 的动态 SQL 生成。
代码如下:
<% @ Page Language="C#" Debug="true" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SqlClient" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
string conns="User Id=chang;password=sa;Initial Catalog=office;Data Source=CL";
string comms="select * from test";
SqlConnection conn=new SqlConnection(conns);
DataSet datas=new DataSet();
SqlDataAdapter ada=new SqlDataAdapter(comms,conn);
ada.Fill(datas,"test"
;
datas.Tables["test"].Rows[8].Delete(); //删除命令,确定有此行存在
/* DataTable dt=datas.Tables["test"];
DataRow dr=dt.Rows[8];
dr["content"]="Posting"; 此更新也无法执行,出现相同问题*/
/* DataTable dt=datas.Tables["test"];
DataRow dr=dt.NewRow();
dr["content"]="abcdefg";
dr["date"] ="2001-1-1";
dr["count"] =100;
dt.Rows.Add(dr); 只有此添加语句可正常运行*/
SqlCommandBuilder ccb=new SqlCommandBuilder(ada);
ada.DeleteCommand=ccb.GetDeleteCommand(); //此行提示出错,在使用不同命令时,此行已作相应修改.
ada.Update(datas,"test"
;
dg.DataSource=datas.Tables["test"];
dg.DataBind();
}
</script>