代码:(将有关插入的封装到类里面了)
private void btAdd_Click(object sender, EventArgs e)
{
try
{
string s = "";
int count = 0;
for(int i=0;i<dataGridViewAddMX.RowCount;i++)
{
if(dataGridViewAddMX.Rows[i].Cells[0].EditedFormattedValue.ToString()=="True")
{
string[] b=new string[6];
b[0]=dataGridViewAddMX.Rows[i].Cells[1].Value.ToString();
b[1]=dataGridViewAddMX.Rows[i].Cells[2].Value.ToString();
b[2]=dataGridViewAddMX.Rows[i].Cells[3].Value.ToString();
b[3]=dataGridViewAddMX.Rows[i].Cells[4].Value.ToString();
b[4]=dataGridViewAddMX.Rows[i].Cells[5].Value.ToString();
b[5]=dataGridViewAddMX.Rows[i].Cells[6].Value.ToString() + "-" + dataGridViewAddMX.Rows[i].Cells[7].Value.ToString();
s=DAL.TcEuipmentQuery.InsertMX(sReport, b);
count++;
}
}
if (s == "成功")
{
MessageBox.Show("添加成功");
AddBind(sReport);
}
else
{
MessageBox.Show("添加失败");
}
if (count == 0)
MessageBox.Show("请至少选择一条数据", "提示");
}
catch(SqlException ee)
{
MessageBox.Show(ee.Message);
}
}
insert语句(使用存储过程)
public static string InsertMX(string sReport,string[] b)
{
string s = "";
SqlParameter p = new SqlParameter("@result", SqlDbType.NVarChar, 50);
p.Direction = ParameterDirection.Output;
string sql = "TorchLab.dbo.T_InsertMX";
SqlParameter[] param_MX ={
new SqlParameter("@sReport",SqlDbType.NVarChar,50),
new SqlParameter("@fOrder",SqlDbType.NVarChar,50),
new SqlParameter("@fName",SqlDbType.NVarChar,250),
new SqlParameter("@fModel",SqlDbType.NVarChar,250),
new SqlParameter("@fNumber",SqlDbType.NVarChar,50),
new SqlParameter("@fManufacturer",SqlDbType.NVarChar,50),
new SqlParameter("@fValidity",SqlDbType.NVarChar,50),
p
};
param_MX[0].Value = sReport;
param_MX[1].Value = b[0];
param_MX[2].Value = b[1];
param_MX[3].Value = b[2];
param_MX[4].Value = b[3];
param_MX[5].Value = b[4];
param_MX[6].Value = b[5];
DbHelperSQL.RunProc(sql, param_MX);
s = p.Value.ToString();
return s;
}
存储过程代码:
ALTER PROCEDURE [dbo].[T_InsertMX]
-- Add the parameters for the stored procedure here
(
@sReport nvarchar(50),
@fOrder nvarchar(50),
@fName nvarchar(50),
@fModel nvarchar(50),
@fNumber nvarchar(50),
@fManufacturer nvarchar(50),
@fValidity nvarchar(50),
@result nvarchar(50) output
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
set @result='失败'
-- Insert statements for procedure here
Insert Into Tmp_TestReportMX(sReport,fOrder,fName,fModel,fNumber,fManufacturer,fValidity)
values(@sReport,@fOrder,@fName,@fModel,@fNumber,@fManufacturer,@fValidity)
set @result='成功'
END