报错:标准表达式中,数据类型不匹配

报错:标准表达式中,数据类型不匹配
求佬佬们帮忙看看


private void button2_Click_1(object sender, EventArgs e)
        {

            OpenFileDialog ofd = new OpenFileDialog();//首先根据打开文件对话框,选择excel表格
            ofd.Filter = "表格|*.xlsx";//打开文件对话框筛选器
            string strPath;//文件完整的路径名
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    strPath = ofd.FileName;
                    string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strPath + ";extended properties = Excel 8.0";
                    OleDbConnection Con = new OleDbConnection(strConn);//建立连接
                    string strSql = "select * from [sheet1$]";
                    OleDbCommand Cmd = new OleDbCommand(strSql, Con);//建立要执行的命令
                    OleDbDataAdapter da = new OleDbDataAdapter(Cmd);//建立数据适配器
                    DataSet ds = new DataSet();//建立数据集
                    da.Fill(ds, "配网运行数据");//把数据适配器中的数据集中到数据集
                    dataGridView1.DataSource = ds.Tables["配网运行数据"];

                    DataTable dt = ds.Tables["配网运行数据"];
                    string str = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\51939\Documents\配网.accdb";
                    OleDbConnection con = new OleDbConnection(str);
                    con.Open();
                    OleDbCommand mycom = new OleDbCommand();
                    mycom.Connection = con;
                         for (int i = 0; i < dt.Rows.Count; i++)
                         { 
                            mycom.CommandText= string.Format(@"insert into 配网运行数据([计算],[变电站],[配网名称],[有功电量(MWh)],[无功电量(MVarh)],[最大功率(MW)],[最小功率(MW)],[变压器容量(kVA)],[历时(h)],[线路数],[线路总长(m)],[公用变压器数],[公用变压器容量(kVA)],[专用变压器数],[专用变压器容量(kVA)])
values('dt.Rows[i][0].ToString()','dt.Rows[i][1].ToString()','dt.Rows[i][2].ToString()','dt.Rows[i][3].ToString()','dt.Rows[i][4].ToString()','dt.Rows[i][5].ToString()','dt.Rows[i][6].ToString()','dt.Rows[i][7].ToString()','dt.Rows[i][8].ToString()','dt.Rows[i][9].ToString()','dt.Rows[i][10].ToString()','dt.Rows[i][11].ToString()','dt.Rows[i][12].ToString()','dt.Rows[i][13].ToString()','dt.Rows[i][14].ToString()')");
                            mycom.ExecuteNonQuery();
                         }   
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);//捕捉异常
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
        }
    }
 }


img

img

修改了format,也还是报数据类型不匹配

 mycom.CommandText= string.Format(@"insert into 配网运行数据([计算],[变电站],[配网名称],[有功电量(MWh)],[无功电量(MVarh)],[最大功率(MW)],[最小功率(MW)],[变压器容量(kVA)],[历时(h)],[线路数],[线路总长(m)],[公用变压器数],[公用变压器容量(kVA)],[专用变压器数],[专用变压器容量(kVA)])
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}')"
,dt.Rows[i][0].ToString(),dt.Rows[i][0].ToString(),dt.Rows[i][1].ToString(),dt.Rows[i][2].ToString(),dt.Rows[i][3].ToString(),dt.Rows[i][4].ToString(),dt.Rows[i][5].ToString(),dt.Rows[i][6].ToString(),dt.Rows[i][7].ToString(),dt.Rows[i][8].ToString(),dt.Rows[i][9].ToString(),dt.Rows[i][10].ToString(),dt.Rows[i][11].ToString(),dt.Rows[i][12].ToString(),dt.Rows[i][13].ToString(), dt.Rows[i][14].ToString());

mycom.CommandText= string.Format(@"insert into 配网运行数据([计算],[变电站],[配网名称],[有功电量(MWh)],[无功电量(MVarh)],[最大功率(MW)],[最小功率(MW)],[变压器容量(kVA)],[历时(h)],[线路数],[线路总长(m)],[公用变压器数],[公用变压器容量(kVA)],[专用变压器数],[专用变压器容量(kVA)])
values('dt.Rows[i][0].ToString()','dt.Rows[i][1].ToString()','dt.Rows[i][2].ToString()','dt.Rows[i][3].ToString()','dt.Rows[i][4].ToString()','dt.Rows[i][5].ToString()','dt.Rows[i][6].ToString()','dt.Rows[i][7].ToString()','dt.Rows[i][8].ToString()','dt.Rows[i][9].ToString()','dt.Rows[i][10].ToString()','dt.Rows[i][11].ToString()','dt.Rows[i][12].ToString()','dt.Rows[i][13].ToString()','dt.Rows[i][14].ToString()')");
这个不能这么写
format不是这么用的,需要用 {0} {1} 这样的占位符,后面加上参数列表