2014-12-22 40 views
0

本地数据库我写一个C#应用程序建立在C#

这是一个离线测试应用程序

它进口了大量的数据文件在.csv文件

此文件的形式由用户使用的形式选择

然后我要存储在本地数据库中,使得我可以执行SQL的形式包含在该.csv文件中的信息的查询

我使用Visual Studio 2012

我从来没有安装前的SQL数据库和只有有限的使用现有的数据库

SQL经验

我尝试到目前为止是:

  1. 解决方案资源管理>添加新文件>本地数据库(.sdf文件)
  2. 数据库资源管理器>表>创建表
  3. 然后我加入了列名的所有字段设置一个作为我的主键
  4. 我试图单一数据集添加到我的数据表中,没有运气

string dbfile = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + "\\MyDatabase.sdf"; SqlCeConnection sqlConnection = new SqlCeConnection("datasource=" + dbfile);

SqlCeDataAdapter sqlAdapter = new SqlCeDataAdapter("select * from MyTable", sqlConnection); 
AMCCoreSignalsDBDataSet sqlData = new AMCCoreSignalsDBDataSet(); 
sqlAdapter.Fill(sqlData); 
string strCSVDataLine = "1,2,3,four" 
sqlData.Tables[0].Rows.Add(new object[] { strCSVDataLine }); 
sqlAdapter.Update(sqlData); 

sqlConnection.Close(); 

此代码不能工作

如何使用C#来填充我的数据库.csv数据?

我的方法不正确/不完整?

有没有更好的方法来做到这一点?

我想使用sql的原因是因为有很多数据。我可以创建一个类结构来包含数据,但它也意味着创建许多不同的过滤器函数。其中SQL已经包含了...

+0

你得到一个错误,还是只是不会给你什么你期望? – ZoomVirus

+0

它崩溃。大概是因为没有声明 – Danaldo

+0

要在try catch捕获异常中查找错误查找,然后输出被捕获的信息,然后在此处发布 – ZoomVirus

回答

1

问题是由于在.csv文件

这是我的修补程序出现空白值

public void Import(string csvfname) 
{ 
    string password; 
    string cacheDatabase; 
    string connectionString; 
    System.IO.StreamReader objFile; 
    string strCommand; 
    string lineHeader; 
    string line; 
    string[] arrLineData; 

    cacheDatabase = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + "\\MyDatabase.sdf"; ; 
    password = ""; 
    connectionString = string.Format("DataSource=\"{0}\"; Password='{1}'", this.cacheDatabase, this.password); 

    objFile = new System.IO.StreamReader(csvfname); 

    lineHeader = objFile.ReadLine(); 

    while (!objFile.EndOfStream) 
    { 
     line = objFile.ReadLine(); 
     arrLineData = line.Split(','); 
     try 
     { 
      sqlConnection = new SqlCeConnection(connectionString()); 
      strCommand = "INSERT INTO MyTable VALUES ('" + arrLineData[0] + "', '" + arrLineData[1] + "', '" + arrLineData[2] + "')"; 
      SqlCeCommand sqlCommand = new SqlCeCommand(strCommand, sqlConnection); 
      sqlCommand.ExecuteNonQuery(); 
      sqlConnection.Close(); 
     } 
     catch (Exception exc) 
     { 
      MessageBox.Show("Error in Import(): " + exc.Message); 
     } 
    } 
}