gpt4 book ai didi

c# - 当其中一个值包含特殊字符时,存储过程失败

转载 作者:太空宇宙 更新时间:2023-11-03 19:16:26 25 4
gpt4 key购买 nike

我有一个特殊字符的问题。因为当有一个 ' 字符时,代码将失败。我怎样才能通过使用下面的存储过程让它处理特殊字符。

        internal bool AddRecord()
{
string SQL = "exec SqlInsert ";

SQL += "'" + _sqlComputer + "', ";
SQL += "'" + _lastUpdatedBy + "', ";
SQL += "'" + DateTime.Now + "', ";
SQL += "'" + _softwareName + "' ";

return SqlDatabase.Overig(SQL);
}

最佳答案

像这样

SqlCommand cmd = new SqlCommand("SqlInsert", sqlCon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Param1", SqlDbType.VarChar, 25).Value = _sqlComputer ;
cmd.Parameters.Add("@Param2", SqlDbType.VarChar, 50).Value = _lastUpdatedBy ;
cmd.Parameters.Add("@Param3", SqlDbType.DateTime).Value = DateTime.Now
cmd.Parameters.Add("@Param4", SqlDbType.Varchar,50).Value = _softwareName ;

sqlCon.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
sqlCon.Close();
dr.Dispose();
cmd.Dispose();

根据您的要求进行编辑

而不是像这样传递值

SqlDatabase.Overig(SQL);

这样做

SqlDatabase.Overig(_sqlComputer,_lastUpdatedBy,DateTime.Now,_softwareName);

并像这样对 Overig 方法进行更改

Overig(String sqlCom, string UpdatedBy, DateTime dat, string software)
{
SqlCommand cmd = new SqlCommand("SqlInsert", sqlCon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Param1", SqlDbType.VarChar, 25).Value = sqlCom;
cmd.Parameters.Add("@Param2", SqlDbType.VarChar, 50).Value = UpdatedBy;
cmd.Parameters.Add("@Param3", SqlDbType.DateTime).Value = dat
cmd.Parameters.Add("@Param4", SqlDbType.Varchar,50).Value = software;

sqlCon.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
sqlCon.Close();
dr.Dispose();
cmd.Dispose();

}

关于c# - 当其中一个值包含特殊字符时,存储过程失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16338037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com