نمایش نتایج 1 تا 4 از 4

نام تاپیک: وارد كردن اطلاعات به ديتا بيس

  1. #1

    Question وارد كردن اطلاعات به ديتا بيس

    با سلام
    دو ستان عزيز من يك فرم دارم كه مي خواهم مشخصات افراد را در آن وارد نموده و به ديتا بيس اس كيو ال وارد كنم در بار اول كه اطلاعات را وارد مي كنم هيچ گونه مشكلي پيش نم آيد و اطلاعات درست به ديتا بيس وارد مي شود اما اگه بخوام مشخصات افراد ديگري را به وسيله فرم اضافه كنم ايراد مي گيره(خط قرمز كد زير) و حتما بايد از فرم خارج شوم و دوباره وارد شوم تا ايراد نگيره
    كل كد فرمم به اينصورت است
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Collections;
    using System.Windows.Forms;

    namespace amir
    {
    public partial class Form1 : Form
    {
    SqlConnection cnn = new SqlConnection();
    SqlDataAdapter sda = new SqlDataAdapter();
    SqlCommand cmd = new SqlCommand();
    DataSet ds = new DataSet();
    ArrayList arr = new ArrayList();
    private void Connect()
    {
    cnn.ConnectionString = "Data Source=localhost;initial catalog=amir ;User ID = sa ;Password=tara;";

    }
    private DataSet LoadAllb()
    {
    Connect();
    cmd.CommandText = "SELECT tarm AS [تاريخ ثبت], shom AS [شماره شناسايي], nam AS نام, namk AS [نام خانوادگي], namp AS [نام پدر], kar AS [محل كار], tel AS تلفن FROM dbo.moshn";
    cmd.Connection = cnn;
    sda.SelectCommand = cmd;
    cnn.Open();
    sda.Fill(ds, "tar");
    cnn.Close();
    return ds;
    }
    private void Insert(SqlCommand cmd)
    {
    Connect();
    cmd.Connection = cnn;
    cnn.Open();
    cmd.ExecuteNonQuery();
    cnn.Close();
    }


    public Form1()
    {
    InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {

    DialogResult result = MessageBox.Show("اضافه شود", "ذخيره", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
    if (result == DialogResult.Cancel)
    {
    this.Hide();
    }
    if (result == DialogResult.OK)
    {
    arr.Add(textBox1.Text);
    arr.Add(textBox2.Text);
    arr.Add(textBox3.Text);
    arr.Add(textBox4.Text);
    arr.Add(textBox5.Text);
    arr.Add(textBox6.Text);
    arr.Add(textBox7.Text);
    cmd.CommandText = "insert into moshr(tarm,shom,nam,namk,namp,kar,tel)Values(@tarm ,@shom,@nam,@namk,@namp,@kar,@tel)";
    cmd.Parameters.Clear();
    cmd.Parameters.Add("@tarm", SqlDbType.Text).Value = arr[0].ToString();
    cmd.Parameters.Add("@shom", SqlDbType.Int).Value = int.Parse(arr[1].ToString());
    cmd.Parameters.Add("@nam", SqlDbType.Text).Value = arr[2].ToString();
    cmd.Parameters.Add("@namk", SqlDbType.Text).Value = arr[3].ToString();
    cmd.Parameters.Add("@namp", SqlDbType.Text).Value = arr[4].ToString();
    cmd.Parameters.Add("@kar", SqlDbType.Text).Value = arr[5].ToString();
    cmd.Parameters.Add("@tel", SqlDbType.Text).Value = arr[6].ToString();
    textBox1.Text = "";
    textBox2.Text = "";
    textBox3.Text = "";
    textBox4.Text = "";
    textBox5.Text = "";
    textBox6.Text = "";
    textBox7.Text = "";

    Insert(cmd);
    LoadAlla();
    dataGridView1.DataSource = ds;
    dataGridView1.DataMember = "beh";
    }

    }



    }

    ممنون مي شم اگه كسي جواب بده


  2. #2

    نقل قول: وارد كردن اطلاعات به ديتا بيس

    فکر میکنم مشکل از ArrayList باشه، شما توی رویداد button1_Click هر بار به Arr اضافه میکنید در حالی که در زمان اضافه کردن پارامترها از عناصر قدیمی Arr استفاده میکنید و چون احتمالا یکی از فیلدهای شما کلید اصلی است خطا میگیره بهتره قبل از اضافه کردن به Arr اول اونو Clear کنید.
    امیدوارم درست متوجه شده باشم!! (اگه متن خطا رو میذاشتی بهتر میشد کمک کرد)

  3. #3

    نقل قول: وارد كردن اطلاعات به ديتا بيس

    دوست عزیز اگه شما می گفتید توی این کد ها چطوری آرایه ها را پاک کنم ممنون می شم من خودم در مثال بالا به این صورت عمل کردم مشکلم از لحاظ ورود دوباره اطلاعات حل شد اما در مراحل بعدی هم اطلاعات موجود و هم اطلاعات قبلی تکس باکسها را دوباره در دیتا بیسم می آورد


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Collections;
    using System.Windows.Forms;

    namespace amir
    {
    public partial class Form1 : Form
    {
    SqlConnection cnn = new SqlConnection();
    SqlDataAdapter sda = new SqlDataAdapter();
    SqlCommand cmd = new SqlCommand();
    DataSet ds = new DataSet();
    ArrayList arr = new ArrayList();
    private void Connect()
    {
    cnn.ConnectionString = "Data Source=localhost;initial catalog=amir ;User ID = sa ;Password=tara;";

    }
    private DataSet LoadAllb()
    {
    Connect();
    cmd.CommandText = "SELECT tarm AS [تاريخ ثبت], shom AS [شماره شناسايي], nam AS نام, namk AS [نام خانوادگي], namp AS [نام پدر], kar AS [محل كار], tel AS تلفن FROM dbo.moshn";
    cmd.Connection = cnn;
    sda.SelectCommand = cmd;
    cnn.Open();
    sda.Fill(ds, "tar");
    cnn.Close();
    return ds;
    }
    private void Insert(SqlCommand cmd)
    {
    Connect();
    cmd.Connection = cnn;
    cnn.Open();
    cmd.ExecuteNonQuery();
    arr.clear();
    cnn.Close();
    }


    public Form1()
    {
    InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {

    DialogResult result = MessageBox.Show("اضافه شود", "ذخيره", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
    if (result == DialogResult.Cancel)
    {
    this.Hide();
    }
    if (result == DialogResult.OK)
    {
    arr.Add(textBox1.Text);
    arr.Add(textBox2.Text);
    arr.Add(textBox3.Text);
    arr.Add(textBox4.Text);
    arr.Add(textBox5.Text);
    arr.Add(textBox6.Text);
    arr.Add(textBox7.Text);
    cmd.CommandText = "insert into moshr(tarm,shom,nam,namk,namp,kar,tel)Values(@tarm ,@shom,@nam,@namk,@namp,@kar,@tel)";
    cmd.Parameters.Clear();
    cmd.Parameters.Add("@tarm", SqlDbType.Text).Value = arr[0].ToString();
    cmd.Parameters.Add("@shom", SqlDbType.Int).Value = int.Parse(arr[1].ToString());
    cmd.Parameters.Add("@nam", SqlDbType.Text).Value = arr[2].ToString();
    cmd.Parameters.Add("@namk", SqlDbType.Text).Value = arr[3].ToString();
    cmd.Parameters.Add("@namp", SqlDbType.Text).Value = arr[4].ToString();
    cmd.Parameters.Add("@kar", SqlDbType.Text).Value = arr[5].ToString();
    cmd.Parameters.Add("@tel", SqlDbType.Text).Value = arr[6].ToString();
    textBox1.Text = "";
    textBox2.Text = "";
    textBox3.Text = "";
    textBox4.Text = "";
    textBox5.Text = "";
    textBox6.Text = "";
    textBox7.Text = "";

    Insert(cmd);
    LoadAlla();
    dataGridView1.DataSource = ds;
    dataGridView1.DataMember = "beh";
    }

    }



    }
    ممنون می شم اگه جواب بدید

  4. #4

    نقل قول: وارد كردن اطلاعات به ديتا بيس

    همه کارتون درسته و فکر نميکنم توي بانک اطلاعات دو بار درج بشه ولي مطمئنم توي ديتاگريد هر بار که يه مقدار رو ذخيره ميکنيد داده هاي قبلي ديتاگريد با اطلاعات داخل بانک جمع ميشه و نمايش داده ميشه. منظورم رو با يه مثال ميگم
    فرض کنيد شما بار اول اسم رضا رو مينويسيد و دکمه ذخيره رو ميزنيد ديتاگريد هم فقط رضا رو نمايش ميده.
    در مرحله بعد اسم علي رو مينويسيد و دکمه ذخيره رو ميزنيد ولي توي ديتاگريد اطلاعات زير نمايش داده ميشه
    رضا
    رضا
    علي
    و وقتي اسم حسين رو ذخيره ميکنيد
    رضا
    رضا
    علي
    رضا
    علي
    حسين
    نمايش داده ميشه اين به اين خاطره که شما هر بار که Select ميکنيد (توي متد Loadallb) مقدار اين جستجو رو به جستجوهاي قبلي در ديتاست اضافه ميکنيد براي رفع اين مشکل کافيه قبل از پر کردن ديتاست جستجوي قبلي رو پاک کنيد

    private DataSet LoadAllb()
    {
    Connect();
    cmd.CommandText = "SELECT tarm AS [تاريخ ثبت], shom AS [شماره شناسايي], nam AS نام, namk AS [نام خانوادگي], namp AS [نام پدر], kar AS [محل كار], tel AS تلفن FROM dbo.moshn";
    cmd.Connection = cnn;
    sda.SelectCommand = cmd;
    ds.Tables["tar"].Clear();
    cnn.Open();
    sda.Fill(ds, "tar");
    cnn.Close();
    return ds;
    }

    براي اطمينان بيشتر بعد ذخيره کردن داده جديد به بانکتون يه سر يزنيد ببينيد داده اضافي ذخيره شده يا نه!

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •