SqlServer数据库中的表名: MyTable
Csv文件位置: @" d:MyFile.csv"
如何复制CSV文件" @" d:MyFile.csv "到" MyTable "使用 C#控制台应用程序的SQL服务器数据库中存在的表?!!!
我使用以下C#代码从数据库导出到CSV文件。但是如何做反向任务?!!!
string strConn = "Data Source=MYSERVER;Initial Catalog=Master;Integrated Security=True";
SqlConnection conn = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("select * from QuickBook", conn);
DataSet ds = new DataSet();
da.Fill(ds, "QB");
DataTable dt = ds.Tables["QB"];
StreamWriter sw = new StreamWriter(@"d:MyFile.csv", false);
int iColCount = dt.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write(dt.Columns[i]);
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(dr[i].ToString());
}
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
}
}
答案 0 :(得分:1)
请参阅本网站上的Codeproject Link和similar question
答案 1 :(得分:0)
首先,您不希望&#34;将CSV文件导出到SQL Server&#34;,您希望&#34;从SQL Server&#34;导出CSV文件。它不一样。
我使用EntityFramework从日期库生成模型。你只需要花两分钟时间生成模型。
添加新项目&gt;数据&gt; ADO.Net实体数据模型&gt;从数据库生成并选择您的连接(或创建一个新连接)。下一步是选择要导出的表。
最后,您只需要查看数据上下文(DbSet)的属性,当然可以使用LINQ过滤元素。
string path = Path.Combine("D", "MyFile.csv");
using (var dataContext = new MyDataContext())
{
using (StreamWriter sw = new StreamWriter(path))
{
StringBuilder line = new StringBuilder();
foreach (var quickBook in dataContext.QuickBooks)
{
line.AppendFormat("{0};", quickBook.Name);
// Append the other properties (remember the culture with the numbers)
sw.WriteLine(line.ToString());
line.Clear();
}
}
}
一个消息:在你的情况下,你可以查看一个类的所有属性&#34; QuickBook&#34;:
foreach (PropertyInfo property in typeof(QuickBook).GetProperties())
{
object value = property.GetValue(quickBook, null);
if (value == null)
line.Append(";");
else
line.AppendFormat("{0};", value);
}
if (line.Length > 0) //Removes the last ';'
line.Remove(line.Length - 1, 1);
答案 2 :(得分:0)
使用EntityFramework的反向任务可能是这样的:
string path = Path.Combine("D", "MyFile.csv");
using (var dataContext = new MyDataContext())
{
using (StreamReader stream = new StreamReader(path))
{
string line;
while ((line = stream.ReadLine()) != null)
{
string[] columns = stream.ReadLine().Split(';');
QuickBook item = new QuickBook();
item.Name = columns[0];
// And so on with the other properties...
dataContext.QuickBooks.Add(item);
}
}
dataContext.SaveChanges();
}