我正试图从数据库中获取一个值。 在SQL-Server中它工作正常,我得到一个非null的值。但每当我尝试从VS执行此操作时,即使获取参数并正确连接数据库,代码中的“status”变量也始终为null。 这是我的代码:
string id = textboxOrderDate.SelectedValue;
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["iremConnection"].ConnectionString);
con.Open();
SqlCommand command = new SqlCommand("SELECT_ORDERSTATUS_BY_ORDERID", con);
command.CommandType = CommandType.StoredProcedure;
SqlParameter paramID = new SqlParameter("@ORDERID", id);
command.Parameters.Add(paramID);
string status= (string)command.ExecuteScalar();
//string status=command.ExecuteScalar().ToString();
con.Close();
我还尝试使用dataadapter用数据表填充数据集以检索我想要的值。但是,不幸的是数据表行数等于0.我的存储过程工作正常我不明白为什么它与VS的工作方式不同。这是我的存储过程:
ALTER PROCEDURE [dbo].[SELECT_ORDERSTATUS_BY_ORDERID]
@ORDERID VARCHAR(50)
AS
SELECT dbo.OrderTable.Status
FROM OrderTable
WHERE @ORDERID=OrderID
答案 0 :(得分:0)
好的,我发现了问题。我使用DateTime类型作为OrderID,它与存储在数据库中的类型不匹配。数据库在末尾用零存储它,因此它与我的c#代码发送的内容不匹配。
谢谢大家。