如何使用多行文本框中的查询将批处理数据插入vb.net和c#中的mysql
我正在用c#和vb.net用MySQL数据库制作一个程序。我正在制作的这两个程序是相同的,虽然它是用不同的语言编写的,但功能是相同的。在这些程序中,查询是动态的,用户将在多行文本框中输入他的查询,按下按钮后,查询将被执行。但我在插入批处理数据时遇到问题。 下面是一个来自多行文本框的查询示例,这是一个MySql转储文件如何使用多行文本框中的查询将批处理数据插入vb.net和c#中的mysql,c#,mysql,vb.net,insert,batch-processing,C#,Mysql,Vb.net,Insert,Batch Processing,我正在用c#和vb.net用MySQL数据库制作一个程序。我正在制作的这两个程序是相同的,虽然它是用不同的语言编写的,但功能是相同的。在这些程序中,查询是动态的,用户将在多行文本框中输入他的查询,按下按钮后,查询将被执行。但我在插入批处理数据时遇到问题。 下面是一个来自多行文本框的查询示例,这是一个MySql转储文件 INSERT INTO `blank` VALUES ('11015', 'Mark', 'Caguia', 'C', '1/1/92', 'Philippines', '0910
INSERT INTO `blank` VALUES ('11015', 'Mark', 'Caguia', 'C', '1/1/92', 'Philippines', '091083913121');
INSERT INTO `blank` VALUES ('11016', 'James', 'CaguiaYap', 'C', '1/1/92', 'Philippines', '091083913121');
INSERT INTO `blank` VALUES ('11017', 'Arwin', 'Santos', 'C', '1/1/92', 'Philippines', '091083913121');
INSERT INTO `blank` VALUES ('11018', 'Chris', 'Lutz', 'C', '1/1/92', 'Philippines', '091083913121');
INSERT INTO `blank` VALUES ('11019', 'Marcio', 'Laseter', 'C', '1/1/92', 'Philippines', '091083913121');
以下是我在vb.net中的代码:
Private Sub btnqueryrun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnqueryrun.Click
Try
Dim StrQuery As String
'txtQueryStr is the name of the multiline textbox
StrQuery = txtQueryStr.Text
sql = StrQuery
cmd = New MySqlCommand(sql, cnn)
da.SelectCommand = cmd
Dim dt As New DataTable()
da.Fill(dt)
dataGridView1.DataSource = dt
Catch ex As Exception
MessageBox.Show(ex.ToString, "SQL Error", MessageBoxButtons.OK,MessageBoxIcon.Error)
End Try
End Sub
下面是我的c#代码:
两个程序都运行,但当我尝试插入超过1000个数据时,它返回一个错误,但当我检查数据库时,插入了一些数据,插入了286个数据。问题是它最多只能限制286个数据,但我希望插入数千个数据。因此,第一个问题是,您遇到了什么错误?它说我的sql语法有错误,错误在“1-957-898-11”附近。这是我数据库中的移动字段,并且?确切的错误消息是什么?导致错误的查询是什么。NET对语句执行或插入大量数据没有限制。哪个语句插入手机号码“1-957-898-11”?我打赌它在287排。您的数据库字段是字符字段还是数字字段?如果是字符,是否足够长以包含此值?是,错误在第287行。我尝试将1-957-898-11的格式更改为195789811,它保存在我的数据库中,现在我的数据库中有287条记录,但它停在那里,并再次在288行返回错误,它仍然是移动字段上的点,格式为1-982-192-10。我的移动字段是varchar数据类型。“您的Sql语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解MySQL.data第1行“1-957-898-11”附近使用的正确语法。MysqlClient.MysqlStream.ReadPacket()…“这正是我得到的错误。我的移动字段的长度是20。
private void btnqueryrun_Click(object sender, EventArgs e)
{
//txtQueryStr is the name of the multiline textbox
strQuery = txtQueryStr.Text;
con.Open();
cmd.Connection = con;
cmd.CommandText = strQuery;
try
{
da.SelectCommand = cmd;
dt.Dispose();
dt = new DataTable();
dataGridView1.DataSource = dt;
da.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "SQL Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}