我不知道如何将我存储的Procedures值转换为String。
这是我的猜测但是很有效:
string id = Request.QueryString["ProductID"];
String Color = GetColor(id);
GetColor(id)应为蓝色,但为“”,而我的字符串颜色为“”。
public static DataTable GetColor(string ProductID)
{
DbCommand comm = GenericDataAccess.CreateCommand();
comm.CommandText = "GetColor";
DbParameter param = comm.CreateParameter();
param.ParameterName = "@ProductID";
param.Value = ProductID;
param.DbType = DbType.Int32;
comm.Parameters.Add(param);
DataTable table = GenericDataAccess.ExecuteSelectCommand(comm);
return table;
}
ALTER PROCEDURE GetColor
@ProductID INT AS Select Color from tblColor where ProductID = @ProductID
答案 0 :(得分:1)
我猜这是因为你的方法正在返回一个DataTable,它不会直接转换为字符串。我觉得像GetColor(id).Rows [0] [0]之类的东西会起作用吗?
答案 1 :(得分:1)
你应该在这里使用ExecuteScalar - 完全没有理由创建一个数据表来获取单个值。
答案 2 :(得分:0)
您可以在return table;
设置断点并检查返回的结果
如果表格填写正确,那么您将需要使用
String Color = GetColor(id).Rows[0][0];
征求意见:
DataTable result = GetColor(id);
string Color = result.Rows[0][0];
string Price = result.Rows[0][1];
string Width = result.Rows[0][2];
但是您需要检查结果DataTable及其第一行以确保您已正确填充它。尝试在快速监视窗口中检查result.Rows[0]