簡體   English   中英

C#中的SQL連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM