بزار یه مثال برات بزنم.
شما فرض کن یه دیتابیس داری به اسم MyDB و توش یه جدول داری به اسم MyTable
فیلد های جدولت :
Table.jpg
توی این جدول ما دوتا فیلد منحصر به فرد داریم یکی ID که از نوع Bigint و Identity رو برابر Yes گذاشتم تا یکی یکی خود SQL بهش اضافه کنه.
فیلد Email هم که فیلد کلیده و مسلما منحصر به فرد.
شما فرض کن یه همچین فرم داری که مقادیر نام، شماره تلفن ، ایمیل و توضیحات رو وارد میکنی
txtName
txtPhoneNO
txtEmail
txtDes
و یه باتن داری برای ثبت
btnInsert
بریم سراغ کد نویسی:
اول تو قسمت public partial class یه کانکشن سراسری تعریف میکنیم و بقیه کد ها رو تو رویداد کلیک باتن می نویسیم
public partial class Form1 : Form {
public Form1()
{
InitializeComponent();
}
SqlConnection con = new SqlConnection(@"server=(local);database=MyDB;integ rated security=true");
private void btnInsert_Click(object sender, EventArgs e)
{
//اول چک میکنیم که مقتادیر وارد شده از قبل در جدول وجود دارد.
// برای این کار فقط ایمیل را چک میکنیم زیرا میتواند بقیه موارد تکراری باشد
SqlDataAdapter da = new SqlDataAdapter("select * from MyTable where Email=@email", con);
da.SelectCommand.CommandType = CommandType.Text;
//مقدار تکست باکس ایمیل را به عنوان پارامتر ابه دستور اس کیو ال می فرستیم
da.SelectCommand.Parameters.AddWithValue("@email", txtEmail.Text.Trim());
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0) //یعنی مقداری با ایمیل وارد شده از قبل وجود داشت
{
MessageBox.Show("Your Email address has already intered!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtEmail.SelectAll();
txtEmail.Focus();
return;
}
SqlCommand com = new SqlCommand("insert into MyTable (Name,PhoneNO,Email,Description) values" +
"(@name,@phone,@email,@des)", con);
com.CommandType = CommandType.Text;
com.Parameters.AddWithValue("@name", txtName.Text.Trim());
com.Parameters.AddWithValue("@phone", txtPhoneNO.Text.Trim());
com.Parameters.AddWithValue("@email", txtEmail.Text.Trim());
com.Parameters.AddWithValue("@des", txtDes.Text.Trim());
con.Open();
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("Your information was successfully registered", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}