我正在尝试用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>
答案 0 :(得分:1)
您正在转储空数据表。在任何时候你都没有填充数据表(dt)。做这样的事情:
max(map(len, dict.values()))
快乐编码:)
答案 1 :(得分:0)
从这里开始:如果在try
内部抛出异常,你会抓住它但不对它做任何事情。在那里放一些有助于调试的东西。例外有一个属性Message
,因此您可以将Message
写入控制台:
catch (Exception e)
{
Console.WriteLine(e.Message);
}
无论谁抛出异常,他们都可能会提供有用的信息。将其写入控制台将有助于您的工作。
接下来,在解决方案中添加断点。运行它时,调试器将在断点处停止。使用F10
一次单步执行一行。这也可以帮助您找出问题所在。更多关于here。
答案 2 :(得分:0)
您初始化但从不填充数据表。考虑使用DataReader执行查询,然后使用结果加载数据表
SqlDataReader dr = dalMgr.SqlCommand.ExecuteReader();
dt.Load(dr);
或者完全修改数据表
string output = dr["column_name"].ToString();