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