C#SQL查询不返回任何内容
我这里有一个公共数据表,代码看起来不错,但是它没有返回任何东西,OrderID是正确的,查询本身是正确的,它没有返回任何东西……有人能告诉我为什么吗C#SQL查询不返回任何内容,c#,sql,C#,Sql,我这里有一个公共数据表,代码看起来不错,但是它没有返回任何东西,OrderID是正确的,查询本身是正确的,它没有返回任何东西……有人能告诉我为什么吗 public DataTable get_OrderTransaction_Master_ByOrderID(Int64 orderID) { cn = new SqlConnection(objCommon.IpcConnectionString); cn.Open(); string
public DataTable get_OrderTransaction_Master_ByOrderID(Int64 orderID)
{
cn = new SqlConnection(objCommon.IpcConnectionString);
cn.Open();
string query = "select transactionID from dbo.OrderTransaction_Master where orderID = " + orderID;
SqlCommand queryCommand = new SqlCommand(query, cn);
SqlDataReader queryCommandReader = queryCommand.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(queryCommandReader);
cn.Close();
return dataTable;
}
警告:这是基于不完整信息的猜测: 尝试以下操作:更改查询字符串并添加行以添加参数
string query = "select transactionID from dbo.OrderTransaction_Master where orderID = @OrderId";
SqlCommand queryCommand = new SqlCommand(query, cn);
queryCommand.Parameters.AddWithValue("@OrderId", orderID);
SqlDataReader queryCommandReader = queryCommand.ExecuteReader();
说明:这不仅可以防止,还可以自动确保OrderId得到正确处理
您没有指定数据库中OrderId的数据类型。我猜它可能不是数字。(guid或varchar-我见过使用nun数字ID的数据库,因此这不是不可想象的。)如果它是非数字的,则可能缺少值周围的引号
例如:
Where Id = 1
不一样
Where Id= '1'
使用参数化查询将自动为您解决此问题。因此,直接对数据库提交完全相同的查询(例如在SQL mgmt studio中)会产生结果?您是否尝试使用SQL Management studio进行查询?有时,该工具中的错误会变得很明显。