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

نام تاپیک: ايراد من كجاست؟

  1. #1

    ايراد من كجاست؟

    سلام من يك sp براي select نوشتم كه بر اساس نام و نام خانوادگي در جدول جستجو ميكنه،اينم كدي كه نوشتم:
    select* from table where name=@name and fname=@fname
    اينم كد من تو سي شارپ
    con.Open();
    cmd1 = new SqlCommand("StoredProcedure2", con);
    cmd1.CommandType = CommandType.StoredProcedure;
    cmd1.Parameters.Add("@name", SqlDbType.NVarChar, 50).Value = textBox1.Text;
    cmd1.Parameters.Add("@fname", SqlDbType.NVarChar, 50).Value = textBox2.Text;
    SqlDataReader data;
    data = cmd1.ExecuteReader();
    if (data.Read())
    {
    DataTable dt = new DataTable();
    dt.Load(data);
    dataGridView1.DataBindings.Clear();
    dataGridView1.DataSource = dt;
    con.Close();
    data.Close();
    }

    با اين كد مقدار رو پيدا ميكنه و ديتا خونده ميشه ولي داخل گريد ويو چيزي نشون داده نميشه،هدر فيلد ها مياد ولي مقادير نمياد...
    اما وقتي select*form table رو ميزنم يا شرطم تك مقداري هست(select*form table where name=@name ) همه موارد رو مياره،ايراد از كجاست؟

    اگه راهي هست خواهش ميكنم بگيد و اين تاپيكو حذف نكنيد، لطفا لينك تاپيك بديد

  2. #2
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: ايراد من كجاست؟

    دوست عزیز شما اول همین کوئری خودتون رو
    select* from table where name=@name and fname=@fname
    توی sql اجرا کنید ببینید که نتیجه داره یا نه؟!!
    البته به جای پارامترها هم همون هایی که از سی شارپ ارسال می کنید و جدول خالی میشه رو بذارین.

  3. #3

    نقل قول: ايراد من كجاست؟

    اجرا كردم جواب داد
    ولي همون كد هايي رو كه خود كوئري ايجاد كرد رو بازم تو sp نوشتم ولي بازم گريد ويو خالي اورد
    آخرین ویرایش به وسیله poya121 : سه شنبه 09 آبان 1391 در 00:31 صبح

  4. #4
    کاربر دائمی آواتار فرید نجفلو
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تبریز
    پست
    1,189

    نقل قول: ايراد من كجاست؟

    دوست عزیز تو شرط به جای Read از HasRow استفاده کنید ببینید چی میشه
    مخصوصا اگه تو دیتابیس فقط یه رکورد داشته باشید ممکنه از همین باشه

  5. #5
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: ايراد من كجاست؟

    نقل قول نوشته شده توسط poya121 مشاهده تاپیک
    اجرا كردم جواب داد
    ولي همون كد هايي رو كه خود كوئري ايجاد كرد رو بازم تو sp نوشتم ولي بازم گريد ويو خالي اورد
    کدتون رو به صورت زیر تغییر بدین ببینید درست میشه :
    cmd1 = new SqlCommand("StoredProcedure2", con);
    cmd1.CommandType = CommandType.StoredProcedure;
    cmd1.Parameters.Add("@name", SqlDbType.NVarChar, 50).Value = textBox1.Text;
    cmd1.Parameters.Add("@fname", SqlDbType.NVarChar, 50).Value = textBox2.Text;

    SqlDataAdapter da = new SqlDataAdapter(cmd1);
    DataTable dt = new DataTable();
    da.Fill(dt);
    dataGridView1.DataSource = dt;

  6. #6

    نقل قول: ايراد من كجاست؟

    ممنون اقا مرتضي جواب داد ولي من كدمو اينطور تغيير دادم چون به شرط احتياج دارم
     SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    da.Fill(dt);

    dataGridView1.DataBindings.Clear();
    dataGridView1.DataSource = dt;
    SqlDataReader data;
    data=cmd.ExecuteReader();
    if(data.Read())
    {
    con.Close();

    حالا اين كار من درسته يا نه؟
    آخرین ویرایش به وسیله poya121 : سه شنبه 09 آبان 1391 در 09:49 صبح

  7. #7
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: ايراد من كجاست؟

    حالا این شرطه برای چی هست؟؟؟
    اگه میخواین ببینید که آیا کوئری نتیجه داره یا نه میتونید از شرط زیر استفاده کنید:
    if (dt.Rows.Count > 0)
    {
    // Your Code...
    }

    و دیگه نیازی نیست که از
    data=cmd.ExecuteReader();
    استفاده کنید.

  8. #8

    نقل قول: ايراد من كجاست؟

    if(data.Read())                          {
    con.Close();


    از
    try
    catch
    finaly
    استفاده کنید و con.close() را در فاینالی قرار بدید.

تاپیک های مشابه

  1. خطاي اين كد كجاست؟
    نوشته شده توسط hrj1981 در بخش برنامه نویسی مرتبط با شبکه و وب در VB6
    پاسخ: 4
    آخرین پست: یک شنبه 21 فروردین 1390, 16:34 عصر
  2. سوال: شروع برنامه نويسي كجاست؟ ميشه راهنمايي كنيد!!
    نوشته شده توسط pejmanbarkhordari در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 4
    آخرین پست: سه شنبه 21 آبان 1387, 14:40 عصر
  3. سوال: ايراد متغير سراسري به جاي Session
    نوشته شده توسط morteza.bh در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 28 خرداد 1387, 19:19 عصر
  4. سوال: جاي triger ها در enterprise manger كجاست؟
    نوشته شده توسط combo_ci در بخش SQL Server
    پاسخ: 1
    آخرین پست: جمعه 27 اردیبهشت 1387, 11:39 صبح
  5. سوال: ايراد در انتقال ديتابيس از 2000 به 2005
    نوشته شده توسط rahami در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: چهارشنبه 25 اردیبهشت 1387, 11:35 صبح

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

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