توی اس کیو الت یک پروسیجر جدید درست کن و توش کدهای زیر رو بنویس .
create proc addrecord
@name nvarchar(50) ,
@cod int ,
@result int output
as
if (exists ( select * from tblkala where cod=@cod))
set @result =1
else
begin
insert into tblkala (cod,name)values(@cod,@name)
set @result =0
end
go
توی خط ششم نوشتم که اگر کالایی با اون کد وجود داشت مقدار 1 رو بده به ریزالت در غیره اینصورت مقدار 0 رو بهش بده و یک رکورد اضافه کن .دو متغیر نام و کد رو ما باید به اس کیو ال بدیم تا مقدار ریزالت رو ( 0 یا 1 ) به ما بده
حالا توی سی شارپ باید دستورات زیر رو بنویسی
//اضافه کردن یک رکورد جدید ****************
con = new SqlConnection("server=MOHSEN-PC\\SQL2008;database=dbhotel;integrated security=true");
SqlCommand cmd = new SqlCommand("addrecord", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name", txtname.Text);
cmd.Parameters.AddWithValue("@cod",Convert.ToInt32(txtcod.Text));
cmd.Parameters.Add("@result", SqlDbType.Int);
cmd.Parameters["@result"].Direction = ParameterDirection.Output;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
int res = Convert.ToInt32(cmd.Parameters["@result"].Value.ToString());
if (res == 1)
{
MessageBox.Show("کالایی با این کد موجود است");
}
else
{
MessageBox.Show("با موفقیت اضافه شد");
}
کلا اینطور بگم که برای جستوجو از where استفاده میکنی . exists هم بررسی موجود بودن را انجام میده
if (exists ( select * from tblkala where cod=@cod))
البته روش های دیگه ای هم هست ولی اصولیش روش بالاست .