[英]SQL connection in C#
private static string SqlDBConnectionString = "Server=12831-QHOO\\SQLEXPRESS;Database=DBHome;Trusted_Connection=True;";
private static void SaveDataToDB(DataTable DT)
{
using (var bulkCopy = new SqlBulkCopy(SqlDBConnectionString, SqlBulkCopyOptions.KeepIdentity))
{
foreach (DataColumn col in DT.Columns)
{
bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);//(DT.ColumnName,SQLTableColumnName)
}
bulkCopy.BulkCopyTimeout = 600;
bulkCopy.DestinationTableName = "DBHome";
bulkCopy.WriteToServer(DT);
}
}
我正在嘗試使用上述設置連接到 C# 中的本地 SQL Server 數據庫。 這樣做時,上面顯示的代碼沒有被執行,即沒有數據被發送到表中。
有沒有辦法查看它是否真的連接到數據庫? 我沒有收到任何錯誤,並且退出代碼為 0。
您可以自己創建一個連接,然后將該連接傳遞給SqlBulkCopy()
,而不是使用傳遞連接字符串和選項的SqlBulkCopy()
的構造函數。 這樣,您可以使用 try-catch 塊來驗證您是否已連接(失敗的連接會引發SqlConnection
對象的錯誤。
前任:
try {
using (SqlConnection destinationConnection =
new SqlConnection(connectionString))
{
destinationConnection.Open();
using (SqlBulkCopy bulkCopy =
new SqlBulkCopy(destinationConnection))
{
//do the operations you need to do in this block
}
}
}catch (Exception e)
{
Console.WriteLine(e.Message);
}
這段代碼實際上並沒有改變任何功能,但更容易調試。 正如評論中提到的@zep426,我懷疑連接字符串可能是您的問題(您可能需要轉義某些字符),但使用這種方法應該更容易確定問題。 例如,您可以添加控制台行以打印destinationConnection.State
。
編輯:
另請注意,SQL 服務器的 C# 接口使用與 JDBC 連接不同的連接字符串(您的字符串似乎是)。 有關更多信息,請參閱這篇文章或這些文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.