SqlDataSource 数据源控件用于表示绑定到数据绑定控件的 SQL 关系数据库中的数据。将 SqlDataSource 控件与数据绑定控件一起使用,可以从关系数据库中检索数据,还可以在网页上显示、编辑和排序数据,而不必编写代码或只需编写少量代码。
若要连接到数据库,必须将 ConnectionString 属性设置为有效的连接字符串。SqlDataSource 可以支持能够使用 ADO.NET 提供程序(例如 SqlClient、OleDb、Odbc 或 OracleClient)连接到的任何 SQL 关系数据库。
使用SqlDataSource的时候,切忌选上将查询字符串写入web.config配置文件中,简化工作,程序代码也更清晰。
在新数据源向导中,如果没有通过先选择Specify columns from a table or view,然后选择高级中的Generate INSERT,UPDATE and DELETE statements的方式来生成可插入、更新和删除的方式,则在向导的Define Custom Statements or Stored Procedures步骤,应按照如下方式写SQL语句:
SELECT * FROM [member_local] ORDER BY [ID]
UPDATE [member_local] SET [mname] = @mname, [myear] = @myear, [mmonth] = @mmonty, [mday] = @mday, [mrole] = @mrole, [mspecialty] = @mspecialty, [mcomment] = @mcomment, [mbool] = @mbool WHERE [ID] = @ID
INSERT INTO [member_local] ([ID], [mname], [myear], [mmonth], [mday], [mrole], [mspecialty], [mcomment], [mbool]) VALUES (?, @ID, @mname, @myear, @mmonty, @mday, @mrole, @mspecialty, @mcomment, @mbool)
DELETE FROM [member_local] WHERE [ID] = @ID
如图:
否则,只在数据绑定空间的属性(智能标签)中设置其可插入,修改和删除会报错:
至少一个参数没有被指定值。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
控件AccessDataSource与之类似。
当然,也可以直接编辑SqlDataSource或AccessDataSource的ConnectionString、SelectCommand、DeleteCommand、InsertCommand和UpdateCommand等属性,如下所示: