2012-11-12 28 views
-1

我写了这个SQL语句并用SQL Server Management Studio对其进行了测试。但是我不确定如何用C#来做到这一点。我尝试过SqlCommand.ExecuteNonQuery();,但没有奏效。我错过了什么?我怎样才能SELECT INTO与SqlCommand? (与铸造,舍入和isnull)

C#:

string query = "SELECT ISNULL(CAST(CustId AS INT), 0) AS AccountNumber, 
         ISNULL(CAST(CompanyName AS NVARCHAR),'') AS Company, 
         ISNULL(CAST(CustName AS NVARCHAR),'') AS FirstName, 
         ISNULL(CAST(LastName AS NVARCHAR),'') AS LastName, 
         ISNULL(CAST(Email AS NVARCHAR),'') AS EmailAddress, 
         ISNULL(CAST(ROUND(CustLoyaltyPoints,0),0) AS NVARCHAR) AS CustomText1 
       INTO db2.dbo.CustomerTemp 
       FROM db1.dbo.Customer;"; 

connection = new SqlConnection(strConnect); //connection already defined above 
SqlCommand command = new SqlCommand(query, connection); 

command.ExecuteNonQuery(); 
+0

粘贴您的代码 –

+0

有[可以看一看[问题/ anweres]](http://stackoverflow.com/questions/1449646/how-can-i-execute-a-sql-从-c) – bonCodigo

+2

您是否收到错误?您是否使用SSMS与应用中的不同凭据进行连接?您正在使用的凭据应用程序的凭据是否具有第二个数据库的权限?更多信息=更多更好的帮助。我们不是通灵= P – TyCobb

回答

0

您需要您ExecuteNonQuery加入这一行:

connection.Open(); 

因此,代码应该是这样的:

connection = new SqlConnection(strConnect); //connection already defined above 
connection.Open(); 

SqlCommand command = new SqlCommand(query, connection); 
command.ExecuteNonQuery(); 

如果你仍然得到错误,发布特定异常&消息正在提出。 HTH ...