将动态参数传递给asp.net页面的mysql查询时出现问题

时间:2010-05-20 14:26:32

标签: mysql asp.net excel

我要求我需要使用asp.net/C#以编程方式读取excel表,并将获取的数据写入mysql表.excel表包含大约50列和2000条记录。我能够阅读来自excel表的数据并将其存储在数据集中。我使用以下代码将数据写入mysql表。

for (int i = 1; i <= myDataSet1.Tables[0].Rows.Count - 1; i++)
        {           
            MySqlCommand cmd = new MySqlCommand();
            for (int j = 0; j <= myDataSet1.Tables[0].Columns.Count - 1; j++)
            {
                paramset[j] = myDataSet1.Tables[0].Rows[i][j].ToString();
                cmd.Parameters.AddWithValue("val" + j, paramset[j]);
            }
              cmd.CommandText = "Insert into faqimport values(val0,val1,val2,val3,val4,val5,val6,val7,val8,val9,val10,val11,val12,val13,val14,val15,val16,val17,val18,val19,val20,val21,val22,val23,val24,val25,val26,val27,val28,val29,val30,val31,val32,val33,val34,val35,val36,val37,val38,val39,val40,val41,val42)";
         cmd.Connection=con;
            cmd.CommandType = CommandType.Text;
        int x=cmd.ExecuteNonQuery;
        }

当我尝试运行上面的代码时,我在'字段列表''错误中得到'未知列'val0'。我明白我手动创建参数val0,val1,val2。 ....相反,我使用整数'j'动态创建它们。但我不想创建大约50个参数来将数据插入数据库表。

有人可以告诉我这是否有解决方法?

还有一种方法可以从excel表中获取列数据类型,以便在mysql中使用excel表中的列创建一个新表吗?

1 个答案:

答案 0 :(得分:0)

我认为“val0,val1 ..”不会被添加到命令中的参数替换。可能是因为你没有给他们加上'@'作为前缀? (“@ val0,@ val1 ..”) AddWithValue()

也是如此