Я работаю с ASP.NET и StoredProcedure. Я изменяю хранимую процедуру, поэтому теперь она возвращает 10 полей, а не 9. Я добавил соответствующее текстовое поле в asp.net, которое получает 10-е поле.
<asp:TextBox ID="ID" runat="server" Text='<%# Eval("ID") %>' Width="80px" ReadOnly="true"></asp:TextBox>
Но он терпит неудачу, говоря
Привязка данных: «System.Data.DataRowView» не содержит свойство
с именем «ID».
Я запускаю хранимую процедуру в SQL Management studio, и она действительно не возвращает вновь измененное поле. Я останавливаюсь и запускаю движок SQL, и теперь он выдает новое значение, но в моем приложении ASP.net он все еще не распознает новое значение. Каков наилучший способ устранить это? Это случилось со мной и раньше.
Добавление кода, где вызывается SP:
SqlConnection aConn = new
SqlConnection(ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString);
SqlCommand aCommand = new SqlCommand("GetCustomer", aConn);
aCommand.CommandType = CommandType.StoredProcedure;
aCommand.Parameters.Add("@ID", SqlDbType.Int).Value = aID;
SqlDataAdapter adapter = new SqlDataAdapter(aCommand);
DataSet aCustomerDS = new DataSet();
adapter.Fill(aCustomerDS);
Моя хранимая процедура (здесь нет ничего странного):
CREATE PROCEDURE [dbo].[GetCustomer]
@ID int
AS
BEGIN
SET NOCOUNT ON;
IF @ID = 0
BEGIN
SELECT ID,
[this field] as thisfield,
[that field] as thatfield,
[new field] as newfield
FROM MyDB.dbo.customers
ORDER BY ID DESC
END
ELSE
BEGIN
SELECT ID,
[this field] as thisfield,
[that field] as thatfield,
[new field] as newfield
FROM MyDB.dbo.Customers
WHERE ID = @ID
ORDER BY ID DESC
END
END
FormView используется для привязки данных к sdsCustomer
<asp:FormView ID="fvCustomer" runat="server" AllowPaging="True" DataSourceID="sdsCustomer"
DataKeyNames="ID" OnPreRender="OnfvCustomer_PreRender">