我想创建一个应用程序,该应用程序将使用数据库中的数据创建一个.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();
}
}
答案 0 :(得分:1)
更改
dataReader["[Actionnaire Pal]"]
到
dataReader["Actionnaire Pal"]
[
和]
只是告诉SQL从其中的所有内容中创建一个列名,而忽略空格(通常会考虑将其表示为语句下一部分的开始) 。它们实际上并不构成最终列名称的一部分。