Процедура или функция 'InsertInfo' ожидает параметр '@s_name', который не был указан.
Я сделал этот простой пример вставки данных в БД с помощью процедуры, но всегда получаю эту ошибку
Procedure or Function 'InsertInfo' expects parameter '@s_name', which was not supplied.
Подвох в том что данные вставляются в таблицу но ошибка показана!
HTML-файл:-
<div> <asp:Label runat=server>Name</asp:Label> <asp:TextBox runat=server ID="txtName"></asp:TextBox><br /> <asp:Label runat=server>Phone No.</asp:Label> <asp:TextBox runat=server ID="txtPhone"></asp:TextBox><br /> <asp:Label runat=server>Degree in:</asp:Label> <asp:TextBox runat=server ID="txtDegree"></asp:TextBox><br /> <asp:Button runat=server ID="btnSubmit" Text="Submit" onclick="btnSubmit_Click"/> <asp:Button runat=server ID="btnEdit" Text="Edit" /> </div>
Код(.cs):-
publiv void insertData() { SqlConnection con = new SqlConnection(str_con); con.Open(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "InsertInfo"; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = con; string a = Convert.ToString(txtName.Text); int b = Convert.ToInt32(txtPhone.Text); string c = txtDegree.Text; cmd.Parameters.Add("@s_name", SqlDbType.VarChar).Value = a; cmd.Parameters.Add("@s_phone", SqlDbType.Int).Value = b; cmd.Parameters.Add("@s_degree", SqlDbType.VarChar).Value = c; //cmd.Parameters.AddWithValue("@s_name", a);<------tried with these also //cmd.Parameters.AddWithValue("@s_phone", b); //cmd.Parameters.AddWithValue("@s_degree", c); cmd.ExecuteNonQuery();<-------error points here con.Close(); }
Хранимая процедура:-
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER procedure [dbo].[InsertInfo] ( @s_name varchar(300), @s_phone int, @s_degree varchar(300) ) as insert into info(s_name,s_phone,s_degree) values(@s_name,@s_phone,@s_degree) exec InsertInfo
Я умоляю вас, пожалуйста, помогите мне найти ошибку.
sriman.ch
Проверяли ли вы, что значения соответствующих текстовых полей не являются нулевыми или пустыми? Попробуйте один раз отладить код и посмотреть, сможете ли вы заполнить параметры или нет ?
07navneet
Параметры заполняются(я не могу показать вам изображение "print screen" во время отладки) их соответствующими значениями
[no name]
EDIT: добавлен тег "pre"