Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中从datagrid视图在数据库中插入数据时出错#_C#_.net_Datagridview - Fatal编程技术网

C# 在C中从datagrid视图在数据库中插入数据时出错#

C# 在C中从datagrid视图在数据库中插入数据时出错#,c#,.net,datagridview,C#,.net,Datagridview,我有个小问题不知道是什么 我正在尝试以下查询以将数据从datagridview插入数据库 问题是,当我执行查询时,它会给我以下错误 “,”附近的语法不正确 但是,数据已成功插入数据库。我试图在这里找到答案,但没有结果。请有人指出错误 我的代码: private void button2_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(@"Data Source HERE"); con

我有个小问题不知道是什么

我正在尝试以下查询以将数据从datagridview插入数据库 问题是,当我执行查询时,它会给我以下错误

“,”附近的语法不正确

但是,数据已成功插入数据库。我试图在这里找到答案,但没有结果。请有人指出错误

我的代码:

private void button2_Click(object sender, EventArgs e)
{
   SqlConnection conn = new SqlConnection(@"Data Source HERE");
   conn.Open();

   int rn = 0;

   while (rn < dgvmain.Rows.Count)
   {
       SqlCommand cmd = new SqlCommand("Insert into mainTab(Token_number,ItemType,Quantity,Amount) values(" + dgvmain.Rows[rn].Cells[0].Value + ",'" + dgvmain.Rows[rn].Cells[1].Value + "'," + dgvmain.Rows[rn].Cells[2].Value + "," + dgvmain.Rows[rn].Cells[3].Value + ")", conn);

       cmd.ExecuteNonQuery();
       rn++;
   }
}
private void按钮2\u单击(对象发送者,事件参数e)
{
SqlConnection conn=新的SqlConnection(@“此处的数据源”);
conn.Open();
int rn=0;
while(rn
这是非常错误的。请将其更改为:

       while (rn < dgvmain.Rows.Count)
       {
           SqlCommand cmd = new SqlCommand("Insert into mainTab(Token_number,ItemType,Quantity,Amount) values(@tok,@itm,@qua,@amo)", conn);
           cmd.Parameters.AddWithValue("@tok", dgvmain.Rows[rn].Cells[0].Value);
           cmd.Parameters.AddWithValue("@itm", dgvmain.Rows[rn].Cells[1].Value);
           cmd.Parameters.AddWithValue("@qua", dgvmain.Rows[rn].Cells[2].Value);
           cmd.Parameters.AddWithValue("@amo", dgvmain.Rows[rn].Cells[3].Value);
           cmd.ExecuteNonQuery();
           rn++;
       }
while(rn
这是非常错误的。请将其更改为:

       while (rn < dgvmain.Rows.Count)
       {
           SqlCommand cmd = new SqlCommand("Insert into mainTab(Token_number,ItemType,Quantity,Amount) values(@tok,@itm,@qua,@amo)", conn);
           cmd.Parameters.AddWithValue("@tok", dgvmain.Rows[rn].Cells[0].Value);
           cmd.Parameters.AddWithValue("@itm", dgvmain.Rows[rn].Cells[1].Value);
           cmd.Parameters.AddWithValue("@qua", dgvmain.Rows[rn].Cells[2].Value);
           cmd.Parameters.AddWithValue("@amo", dgvmain.Rows[rn].Cells[3].Value);
           cmd.ExecuteNonQuery();
           rn++;
       }
while(rn
尝试以下方法:

private void button2_Click(object sender, EventArgs e)
{
        // put your SqlConnection into a using block
        using (SqlConnection conn = new SqlConnection(@"Data Source HERE"))
        {
            // define query with parameters
            string queryStmt = "INSERT INTO dbo.mainTab(Token_number, ItemType, Quantity, Amount) " +
                               "VALUES(@TokenNumber, @ItemType, @Quantity, @Amount)";

            // put your SqlCommand into a using block
            using (SqlCommand cmd = new SqlCommand(queryStmt, conn))
            {
                // Add parameter definitions to SqlCommand
                cmd.Parameters.Add("@TokenNumber", SqlDbType.Int);
                cmd.Parameters.Add("@ItemType", SqlDbType.Int);
                cmd.Parameters.Add("@Quantity", SqlDbType.Decimal);
                cmd.Parameters.Add("@Amount", SqlDbType.Decimal);

                int rn = 0;

                // now open - as late as possible!
                conn.Open();

                // iterate
                while (rn < dgvmain.Rows.Count)
                {
                    // set parameter values
                    cmd.Parameters["@TokenNumber"].Value = Convert.ToInt32(dgvmain.Rows[rn].Cells[0].Value);
                    cmd.Parameters["@ItemType"].Value = Convert.ToInt32(dgvmain.Rows[rn].Cells[1].Value);
                    cmd.Parameters["@Quantity"].Value = Convert.ToDecimal(dgvmain.Rows[rn].Cells[2].Value);
                    cmd.Parameters["@Amount"].Value = Convert.ToDecimal(dgvmain.Rows[rn].Cells[3].Value);

                    // execute INSERT statement
                    cmd.ExecuteNonQuery();

                    rn++;
                }

                conn.Close();
            }
        }
}
private void按钮2\u单击(对象发送者,事件参数e)
{
//将SqlConnection放入using块中
使用(SqlConnection conn=newsqlconnection(@“此处的数据源”))
{
//使用参数定义查询
string querysmt=“插入dbo.mainTab(令牌号、项目类型、数量、金额)”+
“值(@TokenNumber、@ItemType、@Quantity、@Amount)”;
//将SqlCommand放入using块中
使用(SqlCommand cmd=newsqlcommand(querysmt,conn))
{
//将参数定义添加到SqlCommand
cmd.Parameters.Add(“@TokenNumber”,SqlDbType.Int);
cmd.Parameters.Add(“@ItemType”,SqlDbType.Int);
cmd.Parameters.Add(“@Quantity”,SqlDbType.Decimal);
cmd.Parameters.Add(“@Amount”,SqlDbType.Decimal);
int rn=0;
//现在开门-越晚越好!
conn.Open();
//迭代
while(rn
尝试以下方法:

private void button2_Click(object sender, EventArgs e)
{
        // put your SqlConnection into a using block
        using (SqlConnection conn = new SqlConnection(@"Data Source HERE"))
        {
            // define query with parameters
            string queryStmt = "INSERT INTO dbo.mainTab(Token_number, ItemType, Quantity, Amount) " +
                               "VALUES(@TokenNumber, @ItemType, @Quantity, @Amount)";

            // put your SqlCommand into a using block
            using (SqlCommand cmd = new SqlCommand(queryStmt, conn))
            {
                // Add parameter definitions to SqlCommand
                cmd.Parameters.Add("@TokenNumber", SqlDbType.Int);
                cmd.Parameters.Add("@ItemType", SqlDbType.Int);
                cmd.Parameters.Add("@Quantity", SqlDbType.Decimal);
                cmd.Parameters.Add("@Amount", SqlDbType.Decimal);

                int rn = 0;

                // now open - as late as possible!
                conn.Open();

                // iterate
                while (rn < dgvmain.Rows.Count)
                {
                    // set parameter values
                    cmd.Parameters["@TokenNumber"].Value = Convert.ToInt32(dgvmain.Rows[rn].Cells[0].Value);
                    cmd.Parameters["@ItemType"].Value = Convert.ToInt32(dgvmain.Rows[rn].Cells[1].Value);
                    cmd.Parameters["@Quantity"].Value = Convert.ToDecimal(dgvmain.Rows[rn].Cells[2].Value);
                    cmd.Parameters["@Amount"].Value = Convert.ToDecimal(dgvmain.Rows[rn].Cells[3].Value);

                    // execute INSERT statement
                    cmd.ExecuteNonQuery();

                    rn++;
                }

                conn.Close();
            }
        }
}
private void按钮2\u单击(对象发送者,事件参数e)
{
//将SqlConnection放入using块中
使用(SqlConnection conn=newsqlconnection(@“此处的数据源”))
{
//使用参数定义查询
string querysmt=“插入dbo.mainTab(令牌号、项目类型、数量、金额)”+
“值(@TokenNumber、@ItemType、@Quantity、@Amount)”;
//将SqlCommand放入using块中
使用(SqlCommand cmd=newsqlcommand(querysmt,conn))
{
//将参数定义添加到SqlCommand
cmd.Parameters.Add(“@TokenNumber”,SqlDbType.Int);
cmd.Parameters.Add(“@ItemType”,SqlDbType.Int);
cmd.Parameters.Add(“@Quantity”,SqlDbType.Decimal);
cmd.Parameters.Add(“@Amount”,SqlDbType.Decimal);
int rn=0;
//现在开门-越晚越好!
conn.Open();
//迭代
while(rn
-不应将SQL语句连接在一起-使用参数化查询来avo