如何将SP变为字符串?

时间:2011-05-12 08:31:46

标签: asp.net string ado.net

我不知道如何将我存储的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

3 个答案:

答案 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]