关于DetailsView的更新问题,请大家帮帮忙!!!!!!!!!!!!!!!
这是我在DetailsView的ItemUpdated事件中写的代码.SqlDataSource2的连接字符串写在配置文件中,我在这里用代码动态指定SqlDataSource的连接字符串,并指写SqlDataSource2的UpdateCommandType等于存储过程名:UPCASE,我觉得我的代码没有什么问题,可是运行时总是报错:::异常详细信息: System.NotSupportedException: 除非指定了 UpdateCommand,否则数据源“SqlDataSource2”不支持更新操作。 ---
我已经在代码中指定了UpdateCommand是存储过程,这个错误是不是让我写一个UpdateCommand的事件委托???????
其实这个功能,用自动生成即可实现,并且很方便,可是老板要分层来作,HTML页面及
*.ASPX.CS代码页面都不准写SQL语句.我才用存储过程来作的,出了问题又不知怎么办?恳请大家指点迷经??先谢谢你们了!!!!!
protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
{
string caseid = DetailsView1.DataKey[ "caseID "].ToString();
//string ndname = DetailsView1.Fields[1].ToString(); //取列头文字
string ntitle = ((TextBox)DetailsView1.Rows[0].Cells[1].Controls[0]).Text.ToString(); //取绑定列的值
string ndname = ((TextBox)DetailsView1.Rows[1].Cells[1].Controls[0]).Text.ToString();
TextBox DetailText = (TextBox)(DetailsView1.Rows[2].FindControl( "TextBoxContent ")); //取模板列的值
string ncontext = DetailText.Text.ToString();
//DataRowView DrView = (DataRowView)DetailsView1.DataItem; //这种方式取不到值,可书上却是这样写的.
//DetailsViewRow DtView =(DetailsViewRow)DetailsView1.DataItem;
//string ntitle = DrView[ "title "].ToString(); //这种方式取不到值,可书上却是这样写的.
ConnectionStringSettings ConnSetings = System.Web.Configuration.WebConfigurationManager.ConnectionStrings[ "HospitStr "];
SqlDataSource2.ConnectionString = ConnSetings.ConnectionString;
SqlDataSource2.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure;
SqlDataSource2.UpdateCommand = "UPCASE "; //UPCASE为存储过程名
SqlDataSource2.UpdateParameters.Clear();
SqlDataSource2.UpdateParameters.Add( "title ", TypeCode.String, ntitle);
SqlDataSource2.UpdateParameters.Add( "dname ", TypeCode.String, ndname);
SqlDataSource2.UpdateParameters.Add( "content ", TypeCode.String, ncontext);
SqlDataSource2.UpdateParameters.Add( "caseID ", TypeCode.Int32, caseid);
SqlDataSource2.Select(DataSourceSelectArguments.Empty);
DetailsView1.DataBind();
DetailsView1.ChangeMode(DetailsViewMode.Insert);
}
[解决办法]
路过