以编程方式创建数据库并从CSV文件插入数据

本文关键字:CSV 文件 插入 数据 编程 方式 创建 数据库 | 更新日期: 2023-09-27 18:12:19

我有大量的数据360 CSV文件,我想通过使用c#存储在SQL Server数据库中。

我已经安装了Visual Studio 2010,但是我还没有安装任何版本的SQL Server。

现在我有两个问题:

  1. 是否可以使用c#创建SQL Server数据库(虽然SQL Server不可用)?
  2. 如果是,我如何使用c#创建数据库和插入数据到数据库?

我已经尝试了一些像下面这样的代码,从不同的来源找到(盲目复制粘贴,因为我不清楚):

SqlConnection con = new SqlConnection(@"Data Source=SHAWHP'SQLEXPRESS;Initial Catalog=FOO;Persist Security Info=True;User ID=sa");
string filepath = "C:''Users''NKB''Desktop''Catchments''ALKANDA.csv";
StreamReader sr = new StreamReader(filepath);
string line = sr.ReadLine();
string[] value = line.Split(',');
DataTable dt = new DataTable();
DataRow row;
foreach (string dc in value)
{
    dt.Columns.Add(new DataColumn(dc));
}
while (!sr.EndOfStream)
{
    value = sr.ReadLine().Split(',');
    if (value.Length == dt.Columns.Count)
    {
        row = dt.NewRow();
        row.ItemArray = value;
        dt.Rows.Add(row);
    }
}
SqlBulkCopy bc = new SqlBulkCopy(con.ConnectionString, SqlBulkCopyOptions.TableLock);
bc.DestinationTableName = "tblparam_test";
bc.BatchSize = dt.Rows.Count;
con.Open();
bc.WriteToServer(dt);
bc.Close();
con.Close();
但是,它抛出以下异常(与instance相关):

错误是"发生了与网络相关或特定于实例的错误。在建立到SQL Server的连接时。服务器没有已找到或无法访问。验证实例名是否正确并且SQL Server被配置为允许远程连接。(provider: SQL Network Interfaces, error: 26 - error locations服务器/实例指定)"

以编程方式创建数据库并从CSV文件插入数据

根据我的经验,如果一个应用程序存储或连接到一个数据库,必须对数据库进行物理设置,也就是说,必须在建立连接之前设置好数据库和相应的表及其字段。

是的,您可以使用Visual Studio创建一个数据库(作为mdf文件),您可以在应用程序中使用它来导入csv数据。

来源:http://www.youtube.com/watch?v=3w2JkLcp-UA

或编程方式http://support.microsoft.com/kb/307283

SQL server和Database是完全不同的。SQL Server必须安装并可访问才能连接到。您的错误提示您的服务器不可访问。使用c# ADO创建数据库是可能的。但是我不鼓励使用它,除非您不编写服务器管理工具。在Visual studio中,您可以探索服务器(View/SQL Server Object Explorer)并根据需要创建数据库。在属性中,你会看到你需要的正确的ConnectionString。即使你没有访问服务器实例的权限,Visual Studio也提供了基于文件的SQL Server:

   <connectionStrings>
    <add name="ConnectionName" 
         connectionString="Data Source=(LocalDb)'v11.0;;AttachDbFilename=|DataDirectory|'MVC5_pr-2-1-alpha1;Initial Catalog=MVC5_pr-2-1-alpha1;Integrated Security=SSPI"
         providerName="System.Data.SqlClient" />
   </connectionStrings>

表可以像

这样创建
  SqlCommand command = new SqlCommand
    ("CREATE TABLE MyTableName(MyCol char(50),Last null,MyNCol char(50));", con);
    command.ExecuteNonQuery();

和yes - SqlBulkCopy是导入大数据的最佳方式之一。

基于SQL Server的数据库是什么意思?只需安装SQL Server 2008 R2及以上版本。现在回到你的两点:

1)是的,用c#创建数据库是完全可能的

2)参考Codeproject Link和本网站上的类似问题