今天遇到如题的问题。我简述一下,我想做的事情:本段代码主要想实现人员信息的修改。在修改的过程中,想判断每个用户的什么信息被修改了。然后构造sql语句。
SQL 采用SQLParamter的方式添加。
我从网上也查到了类似的问题,但还是没有看懂该如何解决。请各位帮我指出一下我的问题。谢谢!代码如下: private void btnModifySman_Click(object sender, EventArgs e)
{
string commString;
string AddSmanLeader; if (radBtnModSmanYes.Checked)
{
AddSmanLeader = "Y";
}
else
{
AddSmanLeader = "N";
} commString = "update M_Salesman set ";
if (txtModSmanArea != null)
{
commString += "Area = @Area, ";
}
if (txtModSmanEmpid != null)
{
commString += "Employeeid = @Employeeid, ";
} commString += "Manager = @Manager where Code = @Code"; string connString = ConfigurationManager.ConnectionStrings["sitvConnectionString"].ConnectionString.ToString();
SqlConnection conn = new SqlConnection(connString); try
{
SqlCommand ModSman = new SqlCommand(commString, conn);
ModSman.Parameters.Clear();
SqlParameter paramModSmanLead = new SqlParameter("@Manager", SqlDbType.Char, 1);
paramModSmanLead.Value = AddSmanLeader;
ModSman.Parameters.Add(paramModSmanLead); SqlParameter paramModSmanCode = new SqlParameter("@Code", SqlDbType.Char, 10);
paramModSmanCode.Value = comboModSmanCode.Text.ToString();
ModSman.Parameters.Add(paramModSmanCode); if (txtModSmanArea != null)
{
SqlParameter paramModSmanArea = new SqlParameter("@Area", SqlDbType.Char, 2);
paramModSmanArea.Value = txtModSmanArea.Text;
ModSman.Parameters.Add(paramModSmanArea);
} if (txtModSmanEmpid != null)
{
SqlParameter paramModSmanEmpid = new SqlParameter("@Employeeid", SqlDbType.Char, 10);
paramModSmanEmpid.Value = txtModSmanEmpid.Text;
ModSman.Parameters.Add(paramModSmanLead);
} conn.Open();
ModSman.ExecuteNonQuery(); txtModSmanArea.Text = "";
txtModSmanEmpid.Text = "";
radBtnModSmanYes.Checked = true;
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
}
SQL 采用SQLParamter的方式添加。
我从网上也查到了类似的问题,但还是没有看懂该如何解决。请各位帮我指出一下我的问题。谢谢!代码如下: private void btnModifySman_Click(object sender, EventArgs e)
{
string commString;
string AddSmanLeader; if (radBtnModSmanYes.Checked)
{
AddSmanLeader = "Y";
}
else
{
AddSmanLeader = "N";
} commString = "update M_Salesman set ";
if (txtModSmanArea != null)
{
commString += "Area = @Area, ";
}
if (txtModSmanEmpid != null)
{
commString += "Employeeid = @Employeeid, ";
} commString += "Manager = @Manager where Code = @Code"; string connString = ConfigurationManager.ConnectionStrings["sitvConnectionString"].ConnectionString.ToString();
SqlConnection conn = new SqlConnection(connString); try
{
SqlCommand ModSman = new SqlCommand(commString, conn);
ModSman.Parameters.Clear();
SqlParameter paramModSmanLead = new SqlParameter("@Manager", SqlDbType.Char, 1);
paramModSmanLead.Value = AddSmanLeader;
ModSman.Parameters.Add(paramModSmanLead); SqlParameter paramModSmanCode = new SqlParameter("@Code", SqlDbType.Char, 10);
paramModSmanCode.Value = comboModSmanCode.Text.ToString();
ModSman.Parameters.Add(paramModSmanCode); if (txtModSmanArea != null)
{
SqlParameter paramModSmanArea = new SqlParameter("@Area", SqlDbType.Char, 2);
paramModSmanArea.Value = txtModSmanArea.Text;
ModSman.Parameters.Add(paramModSmanArea);
} if (txtModSmanEmpid != null)
{
SqlParameter paramModSmanEmpid = new SqlParameter("@Employeeid", SqlDbType.Char, 10);
paramModSmanEmpid.Value = txtModSmanEmpid.Text;
ModSman.Parameters.Add(paramModSmanLead);
} conn.Open();
ModSman.ExecuteNonQuery(); txtModSmanArea.Text = "";
txtModSmanEmpid.Text = "";
radBtnModSmanYes.Checked = true;
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
}
paramModSmanLead.Value = AddSmanLeader;
ModSman.Parameters.Add(paramModSmanLead);转换为
SqlParameter paramModSmanLead = ModSman.Parameters.Add("@Manager", SqlDbType.Char, 1);
paramModSmanLead.Value = AddSmanLeader;但是什么原因有谁能解释下吗?
这个方法返回的是一个SqlParameter 参数是3个
而你
ModSman.Parameters.Add(paramModSmanLead);
这样传入一个SqlParameter当然是不可以的