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

نام تاپیک: اخرین رکورد درج شده

  1. #1
    کاربر دائمی
    تاریخ عضویت
    تیر 1388
    محل زندگی
    IR
    پست
    101

    Lightbulb اخرین رکورد درج شده

    من میخوام بعد ازاینکه کاربر مشخصات کالایی رو درج کرد شناسه رکورد ثبت شده رو
    ببینه ممکنه تمام اطلاعاتی که وارد میکنه تکراری باشه به غیر از شناسه که کلید اصلی جدوله
    وauto increment
    query که مینوسم تو sql جواب میده یعنی شناسه اخرین رکورد درج شده رو میده ولی تو برنامه به خط

    label14.Text=dr1["id_invoice"].ToString();

    ایراد میگیره
    اگه تو query هم max رو ننویسم شناسه اولین رکورد رو میده
    (من اخری و میخوام )لطفا راهنمایی کنید


      SqlDataReader dr1;
    //{
    if ((textBox5.Text != "") && (textBox4.Text != "") && (textBox3.Text != "")
    && (comboBox6.Text != "") && (comboBox5.Text != "") && (comboBox4.Text != ""))//&& (!invoice.CurrentRow.IsNewRow)
    {

    String strsql, strsql1;
    string strcon;
    strcon = "Data Source=.;Initial Catalog=garner;Integrated Security=True";
    con = new SqlConnection(strcon);

    if (y == 1)
    {
    strsql = "insert into invoice(id_method,id_half,fact_import,id_storekeep er,date_invoce,id_transfer,comment)values(1,@id_ha lf,@fact_import,@id_storkeeper,@date_invoice,@id_t ransfer,@comment)";
    //if (con.State == System.Data.ConnectionState.Closed)
    con.Open();
    SqlCommand com1 = new SqlCommand(strsql, con);
    com1.Parameters.Add("@id_half", SqlDbType.NVarChar);
    com1.Parameters["@id_half"].Value = textBox5.Text;
    com1.Parameters.Add("@fact_import", SqlDbType.NVarChar);
    com1.Parameters["@fact_import"].Value = textBox1.Text;
    com1.Parameters.Add("@id_storkeeper", SqlDbType.NVarChar);
    com1.Parameters["@id_storkeeper"].Value = textBox4.Text;
    com1.Parameters.Add("@date_invoice", SqlDbType.NVarChar);
    com1.Parameters["@date_invoice"].Value = comboBox6.Text + "/" + comboBox5.Text + "/" + comboBox4.Text;
    com1.Parameters.Add("@id_transfer", SqlDbType.NVarChar);
    com1.Parameters["@id_transfer"].Value = textBox3.Text;
    com1.Parameters.Add("@comment", SqlDbType.NVarChar);
    com1.Parameters["@comment"].Value = richTextBox1.Text;
    com1.ExecuteNonQuery();
    //if (con.State == System.Data.ConnectionState.Open)
    con.Close();
    MessageBox.Show("ثبت اطلاعات با موفقيت انجام شد", "اطلاعات ثبت", MessageBoxButtons.OK, MessageBoxIcon.Information);
    pictureBox5.Enabled = false;
    }
    else
    {
    strsql1 = "insert into invoice(id_method,id_half,id_storekeeper,date_invo ce,id_transfer,comment)values(2,@id_half,@id_stork eeper,@date_invoice,@id_transfer,@comment)";
    //if (con.State == System.Data.ConnectionState.Closed)
    con.Open();
    SqlCommand com = new SqlCommand(strsql1, con);
    com.Parameters.Add("@id_half", SqlDbType.NVarChar);
    com.Parameters["@id_half"].Value = textBox5.Text;
    com.Parameters.Add("@id_storkeeper", SqlDbType.NVarChar);
    com.Parameters["@id_storkeeper"].Value = textBox4.Text;
    com.Parameters.Add("@date_invoice", SqlDbType.NVarChar);
    com.Parameters["@date_invoice"].Value = comboBox6.Text + "/" + comboBox5.Text + "/" + comboBox4.Text;
    com.Parameters.Add("@id_transfer", SqlDbType.NVarChar);
    com.Parameters["@id_transfer"].Value = textBox3.Text;
    com.Parameters.Add("@comment", SqlDbType.NVarChar);
    com.Parameters["@comment"].Value = richTextBox1.Text;
    com.ExecuteNonQuery();
    //if (con.State == System.Data.ConnectionState.Open)
    con.Close();
    MessageBox.Show("ثبت اطلاعات با موفقيت انجام شد", "اطلاعات ثبت", MessageBoxButtons.OK, MessageBoxIcon.Information);
    pictureBox5.Enabled = false;
    }}
    string strcon1;
    strcon1 = "Data Source=.;Initial Catalog=garner;Integrated Security=True";
    SqlConnection con1 = new SqlConnection(strcon1);

    string strsql2 = "select max(id_invoice) from invoice";
    //if (con1.State == System.Data.ConnectionState.Closed)
    con1.Open();
    SqlCommand com2 = new SqlCommand(strsql2, con1);
    dr1 = com2.ExecuteReader();
    if (dr1.Read())
    {
    //textBox6.Enabled = true;
    // textBox6.Text = dr1["id_invoice"].ToString();
    label14.Text=dr1["id_invoice"].ToString();
    con1.Close();
    }

    else
    MessageBox.Show("لطفا اطلاعات را كنترل كنيد و دوباره سعي كنيد

  2. #2
    کاربر دائمی آواتار Mohsen_Fotouhi
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    35
    پست
    135

    نقل قول: اخرین رکورد درج شده

    سلام دوست عزیر

    من از روش زیر استفاده می کنم در (SqlServer ) مسلما بهترین روش نیست ولی کارتو را میندازه

    بعد از اجرای ExecuteNonQuery دستور زیر رو اجرا کن


    Sqlcommand.commandtext="select @@identity from Table"
    Long Num_Ident=Convert.Toint64(Sqlcommand.Executescalar ());


    موفق باشید

  3. #3
    کاربر تازه وارد آواتار Royce_Da
    تاریخ عضویت
    تیر 1388
    محل زندگی
    Vegas
    پست
    78

    نقل قول: اخرین رکورد درج شده

    دوست عزیز این دستور آخرین رکورد ذخیره شده رو بهت میده


    select Top 1 Name,Family,.... from Table_1 order by ID desc


    اما اگر برنامت قراره تحت شبکه کار کنه دیگه نباید از این کد استفاده کنی چون ممکنه 2 نفر با هم رکورد اضافه کنن . روش دیگری داره که اگه همینجا یه search کنی پیدا میکنی

    در ضمن اگر کل این دستوراتت رو هم داخل یه transaction انجام بدی بهتره

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

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