[c#]如何使用存储过程将数据从datagridview插入数据库(winforms) [英] [c#] How to insert data from datagridview to database with stored procedure (winforms)

查看:110
本文介绍了[c#]如何使用存储过程将数据从datagridview插入数据库(winforms)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个从文本框和组合框填充的datagridview,我想从datagridview

用存储过程将数据插入数据库。

在这里你可以找到我的存储过程和单击按钮的代码。

当我执行项目时,我收到此错误。任何人都可以帮我解决这个错误。

存储过程

I have a datagridview filled from textboxes and comboboxes and I want from datagridview
to insert data into database with stored procedure.
Here you can find my stored procedure and code for button click.
When I execute project I get this error. Can anyone help me to fix this error.
Stored procedure

create PROCEDURE [dbo].[usp_InsertIntoTable]
@fid int,
@lid int,
@kid int,
@pid int,
@date datetime,
@type nvarchar(50),
@qty nvarchar(50),
@remarks nvarchar(500)
AS
begin
INSERT INTO Table1
VALUES
(
	@fid,
	@kid,
	@pid,
	@date, 
	@type,
	@remarks
)

INSERT INTO Table2
VALUES
(
	@fid,
	@lid,
	@qty
)


end





C#代码点击按钮



C# code on button click

private void btnSave_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("usp_InsertIntoTable", BaseDAL.Connection);
cmd.CommandType = CommandType.StoredProcedure;
for (int i = 0; i < dgvRez.Rows.Count; i++)
{
	cmd.Parameters.Add(new SqlParameter("@fid", dgvRez.Rows[i].Cells["FID"].Value));
        cmd.Parameters.Add(new SqlParameter("@lid", dgvRez.Rows[i].Cells["LBook"].Value));
        cmd.Parameters.Add(new SqlParameter("@kid", dgvRez.Rows[i].Cells["KClient"].Value));
        cmd.Parameters.Add(new SqlParameter("@pid", dgvRez.Rows[i].Cells["PEmployee"].Value));
        cmd.Parameters.Add(new SqlParameter("@date", dgvRez.Rows[i].Cells["Date"].Value));
        cmd.Parameters.Add(new SqlParameter("@type", dgvRez.Rows[i].Cells["Type"].Value.ToString()));
        cmd.Parameters.Add(new SqlParameter("@qty", dgvRez.Rows[i].Cells["Quantity"].Value.ToString()));
        cmd.Parameters.Add(new SqlParameter("@remarks", dgvRez.Rows[i].Cells["Remarks"].Value.ToString()));
        cmd.ExecuteNonQuery();// Here I get the error (Conversion failed when converting the nvarchar value 'remarks' to data type int.)
}
}

推荐答案

private void btnSave_Click(object sender, EventArgs e)
       {
           int chkLoop;

           try
           {
               chkLoop = dataGridView1.Rows.Count;
               //chkLoop = chkLoop - 1;
               MessageBox.Show(chkLoop.ToString());
               foreach (DataGridViewRow row in dataGridView1.Rows)
               {
                   //MessageBox.Show(chkLoop.ToString());
                   //MessageBox.Show(row.co.ToString());
                   if (chkLoop != 0)
                   {
                       db.command.Parameters.Add("@ItemCode", SqlDbType.VarChar).Value = row.Cells["Category Code"].Value.ToString();
                       db.command.Parameters.Add("@ItemName", SqlDbType.VarChar).Value = row.Cells["Category"].Value.ToString();
                       //MessageBox.Show("" + row.Cells["Category Code"].Value.ToString());
                       db.Adapter("sp_NewItem", true);
                       chkLoop = chkLoop - 1;

                   }
               }
               MessageBox.Show("New Item added successfully.", "Successfully done", MessageBoxButtons.OK, MessageBoxIcon.Information);
               db.Adapter("select ItemName as [Item Name] from NewItem", "dt");
               dataGridPreviousList.DataSource = db.dataSet.Tables["dt"];
               //dataGridPreviousList.DataSource = db.Adapter("select ItemName as [Item Name] from NewItem");
           }
           catch (Exception err)
           {
               MessageBox.Show(err.Message);
           }
       }


这篇关于[c#]如何使用存储过程将数据从datagridview插入数据库(winforms)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆