我有这个公共(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;
}
}
}
}
我将 SqlConnection
、SqlCommand
和 SqlDataReader
放在 using
语句中。一旦退出 using 语句,这将正确处理对象(关闭连接等)。
关于公共(public)数据表中的 C# SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866274/