Как мне получить SP в строку? - PullRequest
0 голосов
/ 12 мая 2011

Я не знаю, как получить значение хранимых процедур в строку.

Это мое предположение, но бездействующая работа:

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 ]

1 голос
/ 12 мая 2011

Вам, вероятно, следует использовать здесь ExecuteScalar - нет никаких причин для создания таблицы данных для получения одного значения.

1 голос
/ 12 мая 2011

Я полагаю, это потому, что ваш метод возвращает DataTable, который не приводится непосредственно к строке.Я думаю, что-то вроде GetColor (id) .Rows [0] [0] будет работать?

0 голосов
/ 12 мая 2011

Можете ли вы установить точку останова на 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];<br>

Но вам нужно проверить результат DataTable и его первую строку, чтобы убедиться, что вы заполнили его правильно.Попробуйте проверить result.Rows[0] в окне быстрого просмотра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...