——此文章摘自《C#高级编程(第
版)》定价
元 特价
元 购买
submitButton_Click()事件处理程序目前从会议特性中组合了一个字符串并在 reulstLabel控件中显示它要给数据库添加一个会议需要把创建出来的字符串重新格式化到一个SQL INSERT查询中并执行它
注意为了把数据写入Access数据库ASPNET用户(在默认情况下运行ASPNET进程的账户)必须明确地拥有文件的写入许可这可以使用Windows资源管理器来赋予在比较高级的场合下可以使用其他账户访问资源例如域账户用于访问网络上其他地方的SQL Server实例在ASPNET中有这个功能(通过模拟COM+服务或其他方式实现)但它超出了本书的范围
下面的许多代码都是很熟悉的
protected void submitButton_Click(object sender SystemEventArgs e)
{
if (thisIsValid)
{
String attendees = ;
foreach (ListItem attendee in attendeeListItems)
{
if (attendeeSelected)
{
attendees += attendeeText + ( + attendeeValue + ) ;
}
}
attendees += and + nameBoxText;
String dateString =
calendarSelectedDateDateDateToShortDateString();
String oleDbCommand = INSERT INTO Events (Name Room +
AttendeeList EventDate) VALUES ( +
eventBoxText + +
roomListSelectedItemValue + +
attendees + + dateString + );
创建了SQL查询字符串后就可以使用它构建OleDbOleDbCommand对象了
SystemDataOleDbOleDbCommand insertCommand =
new SystemDataOleDbOleDbCommand(oleDbCommand
oleDbConnection);
接着重新打开在Page_Load()中断开的连接(这可能不是最高效的方式但很适合于演示)执行查询
oleDbConnectionOpen();
int queryResult = insertCommandExecuteNonQuery();
ExecuteNonQuery()返回一个整数表示查询会影响表中的多少行如果它等于插入就是成功的此时如果把一个成功的信息放在resultLabel中执行一个新查询用会议的新列表重新填充eventTable和数据集(首先清除数据集中的数据否则会议日期就会重叠)把日历选择改为一个新的没有会议的日期
if (queryResult == )
{
resultLabelText = Event Added;
daEvents = new SystemDataOleDbOleDbDataAdapter(
SELECT * FROM Events oleDbConnection);
dsClear();
[] []