Member 12716681 Ответов: 0

Когда я экспортирую данные в 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);
чтобы узнать класс объекта столбца.

0 Ответов