C# 如何将数据表复制到SQL Server?

C# 如何将数据表复制到SQL Server?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我需要将数据表复制到新的SQL Server表中。我没有任何模式,但我知道数据表有哪些列(Year、Month、Day、MeanTemp、TotalPrecip、MaxGustSpeed) 从我的研究中,我发现我需要使用SqlBulkCopy,但无法使其工作。 该项目是VS2010中的一个win应用程序。不知道这里是否有人能帮我 非常感谢 ps:这是我在这里的第一篇文章,不确定我是否包含了足够的细节,请告诉我还有什么需要提及的。我也是一个初学者,所以如果你能以一种简单易懂的方式帮助我 这就是我所

我需要将数据表复制到新的SQL Server表中。我没有任何模式,但我知道数据表有哪些列(
Year、Month、Day、MeanTemp、TotalPrecip、MaxGustSpeed

从我的研究中,我发现我需要使用
SqlBulkCopy
,但无法使其工作。 该项目是VS2010中的一个win应用程序。不知道这里是否有人能帮我

非常感谢

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的连接)


第一个问题是你的应用程序无法连接到数据库。可能的原因:

  • 您没有启用TCP连接
  • 您正在使用SQL Express(使用“服务器=。\SQL Express”)
  • 您的应用程序运行时使用的标识没有连接权限
  • 您正在运行命名实例(代码尝试连接到默认实例)

  • 您可以使用Management Studio进行连接吗?

    您遇到的异常仅仅是因为您还不能连接到Visual Studio中的数据。你说你用的是VS 2010, 我建议您在VS中创建并测试一个新的数据库连接

    本msdn指南将在以下方面帮助您。这是一种将大数据从任何数据源复制到SQL Server的有效方法,正如其名称所说,它允许您从其他数据源批量加载MSSQL表。你发布的代码应该可以正常工作

    如果您使用的是SQL Express,则连接字符串如下所示:

    SqlConnection con = new SqlConnection(@"Data Source="InstanceName"\SQLEXPRESS;Initial Catalog=CPSdata;Integrated Security=True");
    

    默认情况下,
    实例名
    是您的计算机名,我同意Rick先使用Management Studio进行连接。

    您说过您无法使其工作。您可以分享您尝试的内容以及遇到的问题/错误吗?@Febe Welcome.see[.谢谢Shree Khanal.我会查出来的。bryanmac我更新了问题并添加了代码:)你是在开发SQL Server Express吗?它是sqlexpress,但我把它移到了SQL Server 2008,但还是一样的问题谢谢RickNZ。我在使用sqlexpress时尝试将它移到sql2008(而不是添加Server=localhost\sqlserver),但仍然得到相同的错误。关于TCP连接,我不知道如何检查它。对于权限,我尝试更改权限(安全->登录->sqlserver2008->映射->dbowener selected),但仍然没有成功。关于命名实例,我记得在安装时,我必须添加一个命名实例。但我记不起名称。我如何理解它的名称?您可以从SQL Server Configuration Manager启用TCP连接。选择左侧的SQL Server网络配置,双击您的实例on在右侧,然后右键单击TCP/IP并选择启用,然后重新启动SQL Server。您还可以从Configuration Manager中看到所有已安装的实例。仅连接到“localhost”与连接到默认实例(称为MSSQLSERVER)相同。对于任何其他实例(包括SQL Express),则需要在conn字符串的“服务器”部分显式包含其名称,如“localhost\YourInstanceName”。