c#

位置:IT落伍者 >> c# >> 浏览文章

C#高级编程:选择数据[2]


发布日期:2022年02月28日
 
C#高级编程:选择数据[2]
——此文章摘自《C#高级编程(第版)》定价元 特价元 购买

Phone = @Phone Fax = @Fax

WHERE (CustomerID = @Original_CustomerID)

AND (Address = @Original_Address OR @Original_Address IS NULL

AND Address IS NULL )

AND (City = @Original_City OR @Original_City IS NULL AND City IS NULL)

AND (CompanyName = @Original_CompanyName)

AND (ContactName = @Original_ContactName OR @Original_ContactName IS NULL

AND ContactName IS NULL )

AND (ContactTitle = @Original_ContactTitle OR @Original_ContactTitle IS NULL

AND ContactTitle IS NULL )

AND (Country = @Original_Country OR @Original_Country IS NULL

AND Country IS NULL )

AND (Fax = @Original_Fax OR @Original_Fax IS NULL AND Fax IS NULL)

AND (Phone = @Original_Phone OR @Original_Phone IS NULL AND Phone IS NULL)

AND (PostalCode = @Original_PostalCode OR @Original_PostalCode IS NULL

AND PostalCode IS NULL )

AND (Region = @Original_Region OR @Original_Region IS NULL

AND Region IS NULL );

SELECT CustomerID CompanyName ContactName ContactTitle

Address City Region PostalCode Country Phone Fax

FROM Customers

WHERE (CustomerID = @ CustomerID);

thissqlUpdateCommandConnection = thissqlConnection;

thissqlUpdateCommandParamatersAdd(

new SystemDataSqlClientSqlParamater(@CustomerID

SystemDataSqlDbTypeNVarChar CustomerID));

// Other Paramaters omitted for clarity

这些命令中的主要部分是已经生成的SQL对于INSERT和UPDATE命令有两条SQL语句—— 一条语句用于插入或更新数据另一条语句用于重新从数据库中选择数据行

这些看起来多余的子句是使客户机上的数据与服务器上数据重新保持同步的一种方式默认情况下在插入时这些语句会应用到列上否则数据库的触发器就会更新已插入/更新记录中的列数据的重新同步有一些优点用于重新选择数据的@CustomerID参数与主键码的INSERT/UPDATE语句中的值相等—— 名称是由向导自动生成的

对于包含IDENTITY列的表生成的SQL会在插入语句后使用@@IDENTITY值如第章所述利用@@IDENTITY生成主键码会产生一些恼人的错误因此要手工修改SQL的这个地方同样如果没有计算好列在更新了一些数据后重新选择源表中的所有列就会浪费时间

向导生成的代码可以工作但有时它并不是最佳的对于产品系统所有生成的SQL语句都应用存储过程的调用来替换如果INSERT或UPDATE子句不需要重新同步数据删除多余的SQL子句可以加速应用程序的运行

[] []

               

上一篇:C#实现从Word中提取指定单元格数据

下一篇:C#高级编程:选择数据[1]