【发布时间】:2015-04-23 17:04:00
【问题描述】:
我正在尝试用 c# 构建一个控制台应用程序,结果我想将它放入一个 csv 文件中。
当我执行代码时,什么也没有发生。当我尝试调试时,我无法确定可能发生的情况。
这是控制台代码
namespace ConsoleOutputFile
{
class Program
{
static void Main(string[] args)
{
try
{
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Connection"].ConnectionString))
{
var outCsvFile = @"C:\test\result.csv";
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Connection = conn;
sqlCmd.CommandText = "ExportTasks";
conn.Open();
DataSet dsData = new DataSet();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
File.WriteAllText(outCsvFile, dt.Columns[0].ToString());
da.Fill(dsData);
conn.Close();
}
}
catch (Exception)
{
}
}
}
}
这是我的 app.config 文件
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
<connectionStrings>
<add connectionString="Server=TestServer;database=test;user=sa;pwd=test" name="Connection"/>
</connectionStrings>
</configuration>
【问题讨论】:
-
这很有道理,你吃的是例外。调试的第一步是读取错误。试试
catch(Exception e) { Console.WriteLine(e.Message); }作为你的收获。或者只是使用一个断点 -
您使用的是什么数据库服务器? MySQL?如果是这样,我认为
user部分是错误的,因为MySQL 使用Uid而不是user。 -
我使用的是 SQL Server 2008
-
您在调用 da.Fill(dsData) 之前正在写入文件。在写入文件之前填写数据表:
标签: c# csv stored-procedures console output