Когда я экспортирую данные в csv, я получаю " invalidcastexception "
private void Btn_Exp_Click(object sender, EventArgs e) { using (SqlCeConnection cn = new SqlCeConnection(connectionString)) { if (cn.State == ConnectionState.Closed) { cn.Open(); } int i = 1; SqlCeCommand comm = new SqlCeCommand("Select * from whsdata", cn); SqlCeDataReader reader = comm.ExecuteReader(); FileStream fs = new FileStream(@"\StockData.csv", FileMode.Create, FileAccess.Write, FileShare.None); // StreamWriter output = File.AppendText(@"\exm.txt"); StreamWriter output = new StreamWriter(fs); // output.WriteLine("WareHouse_No, Raymond_Barcode,BatchNumber,Item,Quantity"); String[] ListLines = new string[20]; ListLines[0] = "WareHouse_No, Raymond_Barcode,BatchNumber,Item,Quantity"; output.Write(ListLines[0] + "\r\n"); while (reader.Read()) { ListLines[i] = reader.GetString(0) + "," + reader.GetString(1) + "," + reader.GetString(2) + "," + reader.GetString(3) + "," + reader.GetString(4) + "," + reader.GetString(5); output.Write(ListLines[i] + "\r\n"); i++; } output.Flush(); fs.Close(); } } What I have tried: while (reader.Read()) { ListLines[i] = reader.GetString(0).Tostring() + "," + reader.GetString(1).Tostring() + "," + reader.GetString(2).Tostring() + "," + reader.GetString(3).Tostring() ; output.Write(ListLines[i] + "\r\n"); i++; }
Karthik_Mahalingam
какая линия?
Member 12716681
ListLines[i] = читатель.GetString(0)+", " + reader.GetString(1)+", " + reader.GetString(2)+", " + reader.GetString(3)+", " + reader.GetString(4)+", " + reader.GetString(5);
Karthik_Mahalingam
добавьте этот код и скажите мне, в какой строке есть ошибка
var col1 = читатель.GetString(0);
var col2 = читатель.GetString(1);
var col3 = читатель.GetString(2);
var col4 = читатель.GetString(3);
var col5 = читатель.GetString(4);
var col6 = читатель.GetString(5);
Richard MacCutchan
Один из столбцов в вашей базе данных возвращает значение, а не строку. Выясните, какой именно, и исправьте свой код. В качестве альтернативы вы можете использовать выражение:Type columnType = reader.GetFieldType(column);
чтобы узнать класс объекта столбца.