我正在尝试制作一个小程序,它读取一个txt文件并按我在列表视图中决定的顺序报告所有内容,然后我希望将列表视图的内容(也由500、600行组成)传输到一个 mysql 数据库。这是我尝试使用的代码,但它对我不起作用,当我尝试将字符串传输到数据库时,我收到此错误,在数据库上,列设置为 nvchar (50),你能帮忙吗谢谢我(例如链接图片)
private void button3_Click(object sender, EventArgs e)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
string cd = "INSERT INTO dbo.example2(timID,timTipo,timDataTempo,timDataOra,timBadge,timTerId,timVerso,timFlag1,timFlag2,timCampo1,timCampo2,timCampo3,timCampo4,timCampo5,timCampo6,timCampo7,timCampo8,timCampo9,timCampo10,timTasto,upsize_ts,timDataInserimento,timAppScrivente,CodiceErrore) VALUES (@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9,@d10,@d11,@d12,@d13,@d14,@d15,@d16,@d17,@d18,@d19,@d20,@d21,@d22,@d23,@d24)";
OleDbConnection conn = new OleDbConnection(@"Provider=SQLOLEDB;Data Source=SERVER\SQLEXPRESS;Initial Catalog=Timbrautre;UID=prova;PWD=OfficeLine21");
conn.Open();
var cmd = new OleDbCommand(cd) { Connection = conn };
foreach (ListViewItem l in listView1.Items)
{
cmd.Parameters.AddWithValue("@d1", l.SubItems[0].Text);
cmd.Parameters.AddWithValue("@d2", l.SubItems[1].Text);
cmd.Parameters.AddWithValue("@d3", l.SubItems[2].Text);
cmd.Parameters.AddWithValue("@d4", l.SubItems[3].Text);
cmd.Parameters.AddWithValue("@d5", l.SubItems[4].Text);
cmd.Parameters.AddWithValue("@d6", l.SubItems[5].Text);
cmd.Parameters.AddWithValue("@d7", l.SubItems[6].Text);
cmd.Parameters.AddWithValue("@d8", l.SubItems[7].Text);
cmd.Parameters.AddWithValue("@d9", l.SubItems[8].Text);
cmd.Parameters.AddWithValue("@d10", l.SubItems[9].Text);
cmd.Parameters.AddWithValue("@d11", l.SubItems[10].Text);
cmd.Parameters.AddWithValue("@d12", l.SubItems[11].Text);
cmd.Parameters.AddWithValue("@d13", l.SubItems[12].Text);
cmd.Parameters.AddWithValue("@d14", l.SubItems[13].Text);
cmd.Parameters.AddWithValue("@d15", l.SubItems[14].Text);
cmd.Parameters.AddWithValue("@d16", l.SubItems[15].Text);
cmd.Parameters.AddWithValue("@d17", l.SubItems[16].Text);
cmd.Parameters.AddWithValue("@d18", l.SubItems[17].Text);
cmd.Parameters.AddWithValue("@d19", l.SubItems[18].Text);
cmd.Parameters.AddWithValue("@d20", l.SubItems[19].Text);
cmd.Parameters.AddWithValue("@d21", l.SubItems[20].Text);
cmd.Parameters.AddWithValue("@d22", l.SubItems[21].Text);
cmd.Parameters.AddWithValue("@d23", l.SubItems[22].Text);
cmd.Parameters.AddWithValue("@d24", l.SubItems[23].Text);
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
我认为你的问题是sql站点中的数据类型 我的建议是添加这样的参数
cmd.Parameters.Add("@dateCheck", MySqlDbType.Timestamp).Value = ToCheckTime;
cmd.Parameters.Add("@orderid", MySqlDbType.Int64).Value = item[1];
不适用于 .AddWithValue
并确保 DBType 正确
private void button3_Click(object sender, EventArgs e)
{
string connectionString = "Initial Catalog=Timbrautre;Data Source=(local);Integrated Security=SSPI;";
using (SqlConnection _con = new SqlConnection(connectionString))
{
_con.Open();
MessageBox.Show("Connection Open !");
int i = 0;
foreach (ListViewItem l in listView1.Items)
{
SqlCommand cmd = new SqlCommand("INSERT INTO dbo.example2 (timID,timTipo,timDataTempo,timDataOra,timBadge,timTerId,timVerso,timFlag1,timFlag2,timCampo1,timCampo2,timCampo3,timCampo4,timCampo5,timCampo6,timCampo7,timCampo8,timCampo9,timCampo10,timTasto,upsize_ts,timDataInserimento,timAppScrivente,CodiceErrore) values('" + l.SubItems[0].Text + "' " + "," + " '" + l.SubItems[1].Text + "'" + "," + " '" + l.SubItems[2].Text + "'" + "," + " '" + l.SubItems[3].Text + "'" + "," + " '" + l.SubItems[4].Text + "'" + "," + " '" + l.SubItems[5].Text + "'" + "," + " '" + l.SubItems[6].Text + "'" + "," + " '" + l.SubItems[7].Text + "'" + "," + " '" + l.SubItems[8].Text + "'" + "," + " '" + l.SubItems[9].Text + "'" + "," + " '" + l.SubItems[10].Text + "'" + "," + " '" + l.SubItems[11].Text + "'" + "," + " '" + l.SubItems[12].Text + "'" + "," + " '" + l.SubItems[13].Text + "'" + "," + " '" + l.SubItems[14].Text + "'" + "," + " '" + l.SubItems[15].Text + "'" + "," + " '" + l.SubItems[16].Text + "'" + "," + " '" + l.SubItems[17].Text + "'" + "," + " '" + l.SubItems[18].Text + "'" + "," + " '" + l.SubItems[19].Text + "'" + "," + " '" + l.SubItems[20].Text + "'" + "," + " '" + l.SubItems[21].Text + "'" + "," + " '" + l.SubItems[22].Text + "'" + "," + " '" + l.SubItems[23].Text + "');", _con);
cmd.ExecuteNonQuery();
i++;
}
MessageBox.Show("Scritto fino alla Timbratura:" + i.ToString());
_con.Close();
}
}