У меня возникла интересная проблема в визуальной студии (вероятно, из-за моего отсутствия опыта). У меня есть объект SqlDataSource и объект GridView. Объект Gridview настроен на использование источника SqlDataSource в качестве источника.Использование SqlDataSource в Visual Studio
SqlDataSource использует параметр (Source = Control, его текстовое поле) для передачи в качестве хранимой процедуры SQL для возврата набора записей. Когда я перехожу через код, при изменении в текстовое поле я выполняю SqlDataSource.Insert()
, затем GridView.DataBind()
.
Поскольку у меня были проблемы с получением результатов, я ожидал, что я запустил транс в SQL Server Profiler.
Кажется, что при запуске SqlDataSource.Insert()
нулевое значение передается через параметр. Когда GridView.DataBind()
работает на следующей строке, значение параметра передается должным образом.
Любые идеи, что может быть причиной этого? Я считаю, что все, что я делаю неправильно, также влияет на другие области моего кода.
protected void ItemBox_TextChanged(object sender, EventArgs e)
{
if(setFire)
{
SqlDataSource1.Insert();
GridView1.DataBind();
Label1.Text = GridView1.Rows.Count.ToString() + " Results Found";
Label2.Text = ItemBox.Text;
setFire = false;
ItemBox.Text = "";
ItemBox.Focus();
setFire = true;
}
}
Почему у нас есть SqlDataSource.Insert здесь, я не вижу никаких вложений в базу данных. ? – Dreamweaver
Чтобы быть абсолютно честным, я просто пытаюсь выполнить хранимую процедуру. Я думал, что мне нужно использовать .Insert(), поскольку я пытаюсь передать значения параметров хранимой процедуре. – user2061929
Чтобы добавить немного к этому. У меня есть второй SqlDataSource, который возвращает выходной параметр. Я также пытаюсь выполнить это, но у меня такая же проблема, как и здесь, когда пропускается NULL. – user2061929