public static bool CheckPoorderSend(string fbrNo, string fbillno, ref string mess) { StringBuilder SQL = new StringBuilder(); SQL.Append("select Isnull(FCheckerID,0) FCheckerID,FCancellation from poorder "); SQL.AppendFormat(" where fbillno ='{0}' ", fbillno); var dt = PublicDAL_Iface.GetDataTable(GetConnectStr(fbrNo), SQL.ToString()); if (dt.Rows.Count > 0) { string FCheckerID = dt.Rows[0]["FCheckerID"].ToString(); if (FCheckerID == "0") { mess = "定位原始订单还未审核,不能发布"; return false; } bool Cancellation = false; bool.TryParse(dt.Rows[0]["FCancellation"].ToString(), out Cancellation); if (Cancellation) { mess = "定位原始订单已经作废不能发布"; return false; } return true; } else { mess = "定位原始订单号失败"; return false; }
时间: 2024-02-10 08:28:43 浏览: 92
这段代码是一个名为`CheckPoorderSend`的静态方法,它接受三个参数:`fbrNo`、`fbillno`和`mess`。这个方法的作用是检查指定订单号的订单是否可以发布。
方法首先构建了一个SQL查询语句,用于从`poorder`表中查询指定订单号的记录的`FCheckerID`和`FCancellation`字段的值。然后,通过调用`PublicDAL_Iface.GetDataTable`方法执行查询并将结果保存在`dt`变量中。
接下来,方法检查返回的表格行数,如果大于0,则说明找到了匹配的记录。然后,方法从表格中获取了`FCheckerID`和`FCancellation`字段的值,并进行相应的判断。
如果`FCheckerID`为"0",则将错误信息赋值给输入参数`mess`,并返回false。如果`FCancellation`为true,则同样将错误信息赋值给`mess`,并返回false。
如果上述条件都不满足,则说明订单可以发布,返回true。
如果未找到匹配的记录,则将错误信息赋值给`mess`,并返回false。
请注意,这段代码也存在SQL注入的安全风险,同样建议使用参数化查询来防止注入攻击。
阅读全文