公共(public)数据表中的 C# SQL 查询

标签 c# sql

我有这个公共(public) DataTable,我正尝试在其中运行 sql 查询,但是该死的东西不会工作...

public DataTable get_OrderTransaction_Master_ByOrderID(Int64 orderID)
    {
        cn = new SqlConnection(objCommon.IpcConnectionString);
        cmd = new SqlCommand("select * from dbo.OrderTransaction_Master where orderID = " + orderID, cn);
        cmd.CommandType = CommandType.Text;
        cn.Open();
        cmd.ExecuteNonQuery();
        cn.Close();
    }

我在 get_OrderTransaction_Master_ByOrderID 下看到一条红线

Error   3   'OrderTransaction_Master.get_OrderTransaction_Master_ByOrderID(long)': not all code paths return a value    C:\IPC\App_Code\OrderTransaction_Master.cs  32  22  http://localhost/ipc/

我做错了什么?

最佳答案

您的方法的返回类型是DataTable,但您的方法中没有返回语句。您还正在执行 cmd.ExecuteNonQuery(),您应该执行 cmd.ExecuteReader() 并加载 DataTable

public DataTable get_OrderTransaction_Master_ByOrderID(Int64 orderID)
{
    DataTable dt = new DataTable();
    using(var cn = new SqlConnection(objCommon.IpcConnectionString))
    {
        using(var cmd = new SqlCommand(
            "select * from dbo.OrderTransaction_Master where orderID = " + orderID, cn))
        {
            cmd.CommandType = CommandType.Text;
            cn.Open();
            using(SqlDataReader reader = cmd.ExecuteReader())
            {
                dt.Load(reader);            
                return dt;
            }
        }
    }
}

我将 SqlConnectionSqlCommandSqlDataReader 放在 using 语句中。一旦退出 using 语句,这将正确处理对象(关闭连接等)。

关于公共(public)数据表中的 C# SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866274/

相关文章:

c# - 为什么Wpf的DrawingContext.DrawText这么贵?

c# - 用于类型转换泛型类型的规避类型系统

python - 如何根据插入的内容确定 SQL 列值的优先级?

mysql - 比较 MySQL 中的两个时间戳

sql - 如何反序列化在 T-SQL 中使用 FOR XML AUTO 序列化的数据记录?

java - 如何删除JPA @ManyToMany关系中的记录?

c# - 在 WPF UserControl 中,将子控件上的 FontSize 设置为 UserControl 的 FontSize

javascript - HTML5 音频元素,源是音频,存储为数据库中的 varbinary 字节

c# - MediaFoundation 找不到视频捕获仿真器驱动程序。但 DirectShow 确实

c# - ASP.NET SQL 问题和代码帮助