【发布时间】:2011-10-11 14:12:52
【问题描述】:
我创建了一个简单的代码来检索数据库参数,即 ("SOPNUMBE", ordernumber) 但是,有时员工会填写错误的订单,给我一个“LIFTxxxx”值而不是“ORDxxxxx”等的 SOPNUMBE。由于 L 在 S 之前,我的 ftp 站点首先处理 LIFT,从而产生错误。我真的很想让这个应用程序忽略除“SOPNUMBE”之外的所有内容,我觉得这是一个非常简单的问题,对我来说这听起来像是一个简单的 if then 语句。但我很难措辞。任何帮助将不胜感激!
public bool UpdateOrderToShipped(string order)
{
orderNumber = order;
string batch = ConfigurationManager.AppSettings["SuccessfulOrderBatch"];
string statement = "UPDATE SOP10100 SET BACHNUMB = '"+ batch +"' WHERE SOPNUMBE = @SOPNUMBE";
SqlCommand comm = new SqlCommand(statement, connectionPCI);
comm.Parameters.Add("SOPNUMBE", orderNumber);
try
{
comm.Connection.Open();
comm.ExecuteNonQuery();
comm.Connection.Close();
}
catch(Exception e)
{
comm.Connection.Close();
KaplanFTP.errorMsg = "Database error: " + e.Message;
}
statement = "SELECT SOPTYPE FROM SOP10100 WHERE SOPNUMBE = @SOPNUMBE";
comm.CommandText = statement;
SqlDataAdapter da = new SqlDataAdapter(comm);
DataTable dt = new DataTable();
da.Fill(dt);
soptype = dt.Rows[0]["SOPTYPE"].ToString();
return true;
}
【问题讨论】:
-
抱歉,您的问题很难理解。 FTP 站点和字母顺序与此代码有什么关系?您是否只想在其中添加检查 [order] 参数的第一个字符的代码?
-
是的,对不起,我对此很陌生。添加代码来检查 [order] 参数的第一个字符正是我想要做的。
-
为什么用户第一次输入数据时不验证数据?如果订单号无效,则不应调用将订单号写入数据库的方法。
-
所以用英文“如果前三个字符是“ORD”,那么就这样做,否则就这样做[???]” 如果不是这种情况,这应该怎么做?如果您对 if 语句不满意,那么您可能不应该使用此代码。你很有可能会破坏其他东西。
-
如果前三个字符是ORD,则存储数据,如果不是,则忽略。
标签: c# mysql sql parameters