我想要创建一个应用程序,它将使用我的数据库中的数据创建一个.CSV文件,但是我得到了以下错误:
System.IndexOutOfRangeException :'CT_Num‘
当我移除:
command.CommandText = "SELECT [Actionnaire Pal] FROM f_comptet";和
dataReader["[Actionnaire Pal]"].ToString() 我再也不犯任何错误了。
class Program
{
static void Main(string[] args)
{
SqlConnection conn = DBUtils.GetDBConnection();
conn.Open();
SqlCommand command = conn.CreateCommand();
command.CommandText = "SELECT CT_Num, [Actionnaire Pal] FROM F_COMPTET WHERE CG_NumPrinc = '4110000'";
SqlDataReader dataReader = command.ExecuteReader();
StreamWriter sw = new StreamWriter("C:\\facture.csv");
while (dataReader.Read())
{
sw.WriteLine("FAAV" + ";" + "." + ";" + "02" + ";" + "JJ/MM/AAAA" + ";" + "A" + ";" + "11" + ";" + dataReader["CT_Num"].ToString() + dataReader["[Actionnaire Pal]"].ToString() + ";");
}
sw.Close();
}
}发布于 2018-06-27 14:45:01
变化
dataReader["[Actionnaire Pal]"]至
dataReader["Actionnaire Pal"][和]只是告诉SQL从它们内部的所有内容中创建一个列名,而忽略了空格(通常它会考虑使用空格来表示语句下一部分的开头)。它们实际上并不构成最终列名的一部分。
https://stackoverflow.com/questions/51065422
复制相似问题