Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#SQL查询不返回任何内容_C#_Sql - Fatal编程技术网

C#SQL查询不返回任何内容

C#SQL查询不返回任何内容,c#,sql,C#,Sql,我这里有一个公共数据表,代码看起来不错,但是它没有返回任何东西,OrderID是正确的,查询本身是正确的,它没有返回任何东西……有人能告诉我为什么吗 public DataTable get_OrderTransaction_Master_ByOrderID(Int64 orderID) { cn = new SqlConnection(objCommon.IpcConnectionString); cn.Open(); string

我这里有一个公共数据表,代码看起来不错,但是它没有返回任何东西,OrderID是正确的,查询本身是正确的,它没有返回任何东西……有人能告诉我为什么吗

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进行查询?有时,该工具中的错误会变得很明显。