hessam2003
سه شنبه 24 بهمن 1391, 20:14 عصر
نحوه کار کردن با store procedure در #C
سلام.
خیلی ممنون از زحمتتون و وقتی که میذارید.
من کد شما رو استفاده کردم اما بهم این پیغام خطا میده.
http://pajoheshgar.persiangig.com/pic.jpg
اینم کد داخلی VS
SqlConnection cnn = new SqlConnection("Data Source=HESSAM;Initial Catalog=Phone_book;Integrated Security=True");
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlCommand comm = new SqlCommand("Phone_book_Account_insert", cnn);
comm.CommandType = CommandType.StoredProcedure;
// comm.CommandText = "نام رویه ذخیره شده";
comm.Parameters.AddWithValue("@Account_srl", 1);
if (textBox1.Text == "") throw new Exception("کد کاربری را وارد نکرده اید");
else
comm.Parameters.AddWithValue("@Account_id", int.Parse(textBox1.Text));
comm.Parameters.AddWithValue("@Account_name", textBox2.Text);
comm.Parameters.AddWithValue("@Account_lname", textBox3.Text);
comm.Parameters.AddWithValue("@Account_company", textBox4.Text);
comm.Parameters.AddWithValue("@Account_phone", textBox5.Text);
comm.Parameters.AddWithValue("@Account_cell_phone" , textBox6.Text);
comm.Parameters.AddWithValue("@Account_email", textBox7.Text);
comm.Parameters.AddWithValue("@Account_address", textBox8.Text);
comm.Parameters.AddWithValue("@Account_command", textBox9.Text);
SqlParameter err = new SqlParameter();
err.Direction = ParameterDirection.Output;
err = comm.Parameters.Add("@err", SqlDbType.NVarChar);
cnn.Open();
comm.ExecuteNonQuery();
cnn.Close();
string error = err.Value.ToString();
MessageBox.Show(error.ToString());
SqlDataAdapter da = new SqlDataAdapter("select * from Phone_book_account", cnn);
DataSet ds = new DataSet();
da.Fill(ds, "phone");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
cnn.Close();
}
اینم کد داخل Procedure SQL
ضمیمه 99924 (http://barnamenevis.org/attachment.php?attachmentid=99924)
create Procedure Phone_book_Account_insert
@Account_srl bigint,
@Account_id bigint,
@Account_name nvarchar(20),
@Account_lname nvarchar(20),
@Account_company nvarchar(30),
@Account_phone char(12),
@Account_cell_phone char(12),
@Account_email nchar(30),
@Account_address nvarchar(50),
@Account_command nvarchar(50),
@err nvarchar(200) output
AS
if exists (select Account_srl from Phone_book_Account
where Account_id=@Account_id)
begin
set @err='کاربر قبلا ثبت شده است!'
return
end
insert into Phone_book_Account(Account_id,Account_name,Account _lname,Account_company,Account_phone,
Account_cell_phone,Account_email,Account_address,A ccount_command) values (
@Account_id,@Account_name,@Account_lname,@Account_ company,@Account_phone,@Account_cell_phone,
@Account_email,@Account_address,@Account_command)
این کد اجرا در SQL
declare @err nvarchar(200)
exec Phone_book_Account_insert 10052,6,'ali','reza','','','','','','',@err output
select @err
select * from Phone_book_Account
سلام.
خیلی ممنون از زحمتتون و وقتی که میذارید.
من کد شما رو استفاده کردم اما بهم این پیغام خطا میده.
http://pajoheshgar.persiangig.com/pic.jpg
اینم کد داخلی VS
SqlConnection cnn = new SqlConnection("Data Source=HESSAM;Initial Catalog=Phone_book;Integrated Security=True");
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlCommand comm = new SqlCommand("Phone_book_Account_insert", cnn);
comm.CommandType = CommandType.StoredProcedure;
// comm.CommandText = "نام رویه ذخیره شده";
comm.Parameters.AddWithValue("@Account_srl", 1);
if (textBox1.Text == "") throw new Exception("کد کاربری را وارد نکرده اید");
else
comm.Parameters.AddWithValue("@Account_id", int.Parse(textBox1.Text));
comm.Parameters.AddWithValue("@Account_name", textBox2.Text);
comm.Parameters.AddWithValue("@Account_lname", textBox3.Text);
comm.Parameters.AddWithValue("@Account_company", textBox4.Text);
comm.Parameters.AddWithValue("@Account_phone", textBox5.Text);
comm.Parameters.AddWithValue("@Account_cell_phone" , textBox6.Text);
comm.Parameters.AddWithValue("@Account_email", textBox7.Text);
comm.Parameters.AddWithValue("@Account_address", textBox8.Text);
comm.Parameters.AddWithValue("@Account_command", textBox9.Text);
SqlParameter err = new SqlParameter();
err.Direction = ParameterDirection.Output;
err = comm.Parameters.Add("@err", SqlDbType.NVarChar);
cnn.Open();
comm.ExecuteNonQuery();
cnn.Close();
string error = err.Value.ToString();
MessageBox.Show(error.ToString());
SqlDataAdapter da = new SqlDataAdapter("select * from Phone_book_account", cnn);
DataSet ds = new DataSet();
da.Fill(ds, "phone");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
cnn.Close();
}
اینم کد داخل Procedure SQL
ضمیمه 99924 (http://barnamenevis.org/attachment.php?attachmentid=99924)
create Procedure Phone_book_Account_insert
@Account_srl bigint,
@Account_id bigint,
@Account_name nvarchar(20),
@Account_lname nvarchar(20),
@Account_company nvarchar(30),
@Account_phone char(12),
@Account_cell_phone char(12),
@Account_email nchar(30),
@Account_address nvarchar(50),
@Account_command nvarchar(50),
@err nvarchar(200) output
AS
if exists (select Account_srl from Phone_book_Account
where Account_id=@Account_id)
begin
set @err='کاربر قبلا ثبت شده است!'
return
end
insert into Phone_book_Account(Account_id,Account_name,Account _lname,Account_company,Account_phone,
Account_cell_phone,Account_email,Account_address,A ccount_command) values (
@Account_id,@Account_name,@Account_lname,@Account_ company,@Account_phone,@Account_cell_phone,
@Account_email,@Account_address,@Account_command)
این کد اجرا در SQL
declare @err nvarchar(200)
exec Phone_book_Account_insert 10052,6,'ali','reza','','','','','','',@err output
select @err
select * from Phone_book_Account