繁体   English   中英

C#将mysql数据库导出到Excel文件

[英]C# export mysql database to excel file

嗨,我创建了一个pos软件,但是我需要一个功能来将数据导出到excel,所以我创建了一个要导出的类,当我尝试导出文件时出现错误,所以这是我工作的一些代码。

public void PrefrlivoExcel()
{
    MySqlConnection connection = Connection.prevzemiKonekcija();

    MySqlDataAdapter adapter = new MySqlDataAdapter();
    string sqlSelectAll = "SELECT * from prodavnica.artikli";
    adapter.SelectCommand = new MySqlCommand(sqlSelectAll, connection);

    adapter.Fill(tabela);
    tabelaSmetka(tabela);
}
void tabelaSmetka(DataTable tabela)
{
    object missValue = System.Reflection.Missing.Value;
    Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
    app.Visible = false;

    Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
    Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.ActiveSheet;

    for (int i = 0; i < tabela.Columns.Count; i++)
    {

        ws.Cells[1, i + 1] = tabela.Columns[i].ColumnName;
    }

    for (int i = 0; i < tabela.Rows.Count; i++)
    {

        for (int j = 0; j < tabela.Columns.Count; j++)
        {

            ws.Cells[i + 2, j + 1] = tabela.Rows[i][j].ToString();
        }


    }
    ws.Name = tabela.TableName;
    wb.SaveAs(@"D:\artikli.xlsx", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, missValue, missValue, missValue, missValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, missValue, missValue, missValue, missValue);
    wb.Close(true, missValue, missValue);
    MessageBox.Show("Податоците беа успешно префрлени во Excel !");
}

错误如下:

System.ArgumentNullException:'值不能为null。 参数名称:dataTable'

适配器为空。

看来您尚未初始化DataTable变量。 在这种情况下, tablea 初始化DataTable然后再将其传递到DataAdapter

DataTable tablea = new DataTable();

DataTable dt = null;

SqlConnection con = new 
SqlConnection(@"server=sampleserver;database=Fiddle;uid=sa;pwd=sa");
SqlDataAdapter adapter = new SqlDataAdapter();
string sql = "select * from employee";
adapter.SelectCommand = new SqlCommand(sql, con);

adapter.Fill(dt);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM