我需要将数据表复制到新的SQL Server表中。我没有任何架构,但我知道数据表有哪些列(Year,Month,Day,MeanTemp,TotalPrecip,MaxGustSpeed
)
从我的研究中我发现我需要使用SqlBulkCopy
但是无法使其工作。
该项目是VS 2010中的一个胜利应用程序。想知道这里是否有人可以帮助我。
非常感谢
ps:这是我在这里的第一篇文章,不确定我是否包含了足够的细节,请告诉我是否还需要提及其他任何内容。我也是初学者,所以如果你能以一种易于理解的方式帮助我
这就是我的尝试:
string connectionString = "server=localhost;database=CPSdata;Trusted_Connection=True";
//Open a connection with destination database;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlBulkCopy bulkcopy = new SqlBulkCopy(connection))
{
bulkcopy.DestinationTableName = "dbo.climateRawDataTable";
try
{
bulkcopy.WriteToServer(dt);
}
catch (Exception ex)
{
}
connection.Close();
}
}
我得到的错误是:
类型'System.Data.SqlClient.SqlException'的未处理异常 发生在System.Data.dll
中其他信息:与网络相关或特定于实例的错误 在建立与SQL Server的连接时发生。服务器是 没找到或无法访问。验证实例名称是否为 正确并且SQL Server配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开 连接到SQL Server)
答案 0 :(得分:0)
您获得的例外仅仅是因为您无法连接到Visual Studio中的数据。你说你在使用VS 2010, 我建议您在VS中创建并测试新的数据库连接。
这个msdn指南将帮助您Connecting to Data in Visual Studio。 SqlBulkCopy是将大数据从任何数据源复制到SQL Server的有效方法,如名称所示,允许您从其他来源批量加载MSSQL表。您发布的代码应该可以正常工作。
如果您使用的是SQL Express,则连接字符串将类似于:
SqlConnection con = new SqlConnection(@"Data Source="InstanceName"\SQLEXPRESS;Initial Catalog=CPSdata;Integrated Security=True");
默认情况下,instance name
是您的计算机名称,我同意Rick首先使用Management Studio进行连接。