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

نام تاپیک: ویرایش و حذف دیتاگرید روی store procedure

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    197

    Question ویرایش و حذف دیتاگرید روی store procedure

    با سلام خدمت برنامه نویسان عزیز

    علی رغم توضیحات و جواب های بی شمار دریاره ویرایش و حذف از دیتاگرید اما نتونستم مطلبی رو که در این باره که روی storeproceture کار کنه پیدا کنم.
    من اطلاعاتم را درون دیتا گرید نمایش می دم می خوام با کلیک روی هر سطر و انجام ویرایش و زدن کلید ویرایش این تغییرات اعمال بشه.برنامه خطا نداره اما وقتی تغییراتی را روی داده ها می دم و کلید ویرایش و می زنم این تغییرات در sql ذخیره نمی شه.این اتفاق واسه حذف کردن یک رکورد انتخاب شده از دیتاگرید هم می افته.با توجه به کدی که من نوشتم لطفا منو راهنمایی کنید.باتشکر.

    private void btnUpdate_Click_1(object sender, EventArgs e)
    {
    SqlConnection cn = new SqlConnection();
    SqlCommand cmd = new SqlCommand("PhoneBook_Update",cn);
    cn.ConnectionString = "server=HAMED-PC;database=PhoneBook;uid=sa;pwd=hamed;";
    cmd.Connection = cn;
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "PhoneBook_Update";

    SqlDataAdapter da = new SqlDataAdapter(cmd);

    cmd.Parameters.Add("@Name", SqlDbType.NVarChar, 15).Value = txtName.Text;
    cmd.Parameters.Add("@FName", SqlDbType.NVarChar, 25).Value = txtFname.Text;


    DataTable dt = new DataTable();

    da.Update(dt);

    dgvphonebook.DataSource = dt;

    }


    اینم کد حذف:

    private void btnDelete_Click(object sender, EventArgs e)
    {
    SqlConnection cn = new SqlConnection();
    SqlCommand cmd = new SqlCommand("PhoneBook_Update", cn);
    cn.ConnectionString = "server=HAMED-PC;database=PhoneBook;uid=sa;pwd=hamed;";
    cmd.Connection = cn;
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "PhoneBook_Delete";

    SqlDataAdapter da = new SqlDataAdapter(cmd);

    cmd.Parameters.Add("@Name", SqlDbType.NVarChar, 15).Value = txtName.Text;
    cmd.Parameters.Add("@FName", SqlDbType.NVarChar, 25).Value = txtFname.Text;

    MessageBox.Show("اطلاعات با موفقیت حذف شد", "پیام حذف", MessageBoxButtons.OK, MessageBoxIcon.Information
    , MessageBoxDefaultButton.Button1);

    txtName.Clear();
    txtFname.Clear();
    txtCellphone.Clear();
    txtOffice.Clear();
    txtOther.Clear();
    txtPhone.Clear();
    }

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    68

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    cmd.executenonquery یادت نره!

  3. #3
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    197

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    اگه بخوام از cmd.executenonquery استفاده کنم که باید از cn.open() و cn.close() استفاده کنم در حالی که می خوام از اطلاعات دیتابیس بصورت disconnect استفاده کنم.اینطوری مشکلی ایجاد نمی شه؟
    آخرین ویرایش به وسیله bahareh1368 : پنج شنبه 25 شهریور 1389 در 16:17 عصر

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    68

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    تا اونجایی که من میدونم این روش بهتر از استفاده از dataAdapter هست (مخصوصا در تعداد رکورد زیاد)
    کد مربوط به حذف رو گذاشتم update هم دقیقا شبیه همینه
    اگه بازم نشد کد StoredProcedure را هم بذار ،شاید مشکل از اونجا باشه


    private void btnDelete_Click(object sender, EventArgs e)
    {
    DialogResult a;
    a = MessageBox.Show("آیا مطمئن هستید؟", "هشدار", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
    if (a == DialogResult.No)
    return;
    else if (a == DialogResult.Yes)
    {
    SqlConnection con = new SqlConnection();
    SqlCommand com = new SqlCommand();

    con.ConnectionString = "Data Source=.;Initial Catalog=Phonebook;Integrated Security=True";
    if (con.State != ConnectionState.Open)
    con.Open();

    com.CommandType = CommandType.StoredProcedure;
    com.Parameters.Add("@Name", SqlDbType.NVarChar, 15).Value = txtName.Text;
    com.Parameters.Add("@FName", SqlDbType.NVarChar, 25).Value = txtFname.Text;
    com.CommandText = "PhoneBook_Delete";
    com.Connection = con;
    com.ExecuteNonQuery();
    con.Close();
    con.Dispose();

    }
    }

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    197

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    کد شما رو واسه حذف نوشتم اما پیغام می ده که storeprocedure_delete پیدا نمی کنه.این کد storeprocedure واسه delete یه نگاهی بندازید و اشکالشو بهم بگید.ممنون می شم.

    create procedure PhoneBook_Delete

    @Name nvarchar(15),
    @FName nvarchar(25)

    AS
    Delete from [PhoneBook].[dbo].[PhoneBook_table] where نام=@Name or [نام خانوادگی]=@FName

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    68

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    خب توی پیام اگه نگاه کنی نوشته storeprocedure_delete
    اما اسم storeprocedure شما Phonebook_delete
    به هر حال بعد از یکی کردن نام storeprocedure در sql و در برنامه ت بهتره وقتی یه storeprocedure مینویسی اول تو محیط sqlServer اونو Execute کنی اگه جواب داد بری سراغ برنامه ت
    بعد از Execute کردن این storeprocedure ازت مقدار دو پارامتر رو میخواد که بعد از مقداردهی باید رکورد مربوطه را پاک کنه
    اگه باز مشکلی پیش اومد بنویس اگه بتونم کمک کنم خوشحال میشم

  7. #7
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    197

    Question نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    نقل قول نوشته شده توسط Merila_Rad مشاهده تاپیک
    خب توی پیام اگه نگاه کنی نوشته storeprocedure_delete
    اما اسم storeprocedure شما Phonebook_delete
    به هر حال بعد از یکی کردن نام storeprocedure در sql و در برنامه ت بهتره وقتی یه storeprocedure مینویسی اول تو محیط sqlServer اونو Execute کنی اگه جواب داد بری سراغ برنامه ت
    بعد از Execute کردن این storeprocedure ازت مقدار دو پارامتر رو میخواد که بعد از مقداردهی باید رکورد مربوطه را پاک کنه
    اگه باز مشکلی پیش اومد بنویس اگه بتونم کمک کنم خوشحال میشم
    کد شما رو واسه حذف نوشتم.اما رکوردی رو حذف نمی کنه و هیچ خطایی هم نمی ده.
    درمورد update هم خطای زیرو می ده :

    storeproceture or function 'Phonebook_update' expects parameters '@phonenumber' wich was not supplied.

    من برنامه رو می ذارم لطفا راهنماییم کنید که چیکار باید بکنم
    فایل های ضمیمه فایل های ضمیمه

  8. #8

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    دوستان چه را راه دور میرید.
    از این کد برای درج استفاده کنید.
        protected void btn_insert_Click(object sender, EventArgs e)
    {
    db.insert_user(txt_user.Value.Trim(), txt_pass.Value.Trim(), txt_email.Value.Trim());
    Page_Load(null, null);

    }

    همانطور که میبینید در رویداد باتن ذخیره کد نوشته شده است.
    خط دوم کد برای اینکه دیتاگرید رفرش بشه.
    من دستور حذف و اپدیت رو ندارم.حالا یکی اینا رو به من بده؟؟؟

  9. #9
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1387
    محل زندگی
    خوزستان -دزفول
    سن
    39
    پست
    85

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    من کد پروسیجر و C#‎‎‎ رو برات قرار میدم امید وارم بدردت بخوره .


    ALTER PROCEDURE [dbo].[PhoneBook_Update]

    @Id INT,
    @Name nvarchar(20),
    @Fname nvarchar(20),
    @PhoneNumber int,
    @CellphoneNumber varchar(20),
    @OfficeNumber varchar(10),
    @OtherNumber varchar(10)


    AS

    BEGIN
    UPDATE PhoneBook_table
    SET
    Name=@Name ,
    Fname=@Fname ,
    PhoneNumber=@PhoneNumber ,
    CellphoneNumber=@CellphoneNumber ,
    OfficeNumber=@OfficeNumber,
    OtherNumber=@OtherNumber

    WHERE Id=@Id
    END






    SqlCommand command = new SqlCommand("PhoneBook_Update", connString);
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.Add("@Id", SqlDbType.Int).Value = Id;
    command.Parameters.Add("@Name", SqlDbType.NVarChar).Value = TxtName.Text.Trim();
    command.Parameters.Add("@Fname", SqlDbType.NVarChar).Value = TxtFamily.Text.Trim();
    command.Parameters.Add("@PhoneNumber", SqlDbType.int).Value = TxtPhoneNumber.Text.Trim();
    command.Parameters.Add("@CellphoneNumber", SqlDbType.VarChar).Value = TxtCellphoneNumber.Text.Trim();
    command.Parameters.Add("@OfficeNumber", SqlDbType.VarChar).Value = txtOfficeNumber.Text.Trim();
    command.Parameters.Add("@OtherNumber", SqlDbType.VarChar).Value = txtOtherNumber.Text.Trim();

    connString.Open();
    command.ExecuteNonQuery();
    connString.Close();


  10. #10

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    دوست گرامی sorena2000

    وقتی از استوری پروسیجور استفاده میکنید , دیگه نیازی نیست از کدهای sql استفاده کنید.


    در سال 2012 طرح جدیدی به نام LINQ امده که در یک خط کارهایی از قبیل : آپدیت و ذخیره و ..... را به راحتی انجام داد.

    مانند:

     db.insert_user(txt_user.Value.Trim(), txt_pass.Value.Trim(), txt_email.Value.Trim());

  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1387
    محل زندگی
    خوزستان -دزفول
    سن
    39
    پست
    85

    نقل قول: ویرایش و حذف دیتاگرید روی store procedure

    بله این رو میدونم من هم کد معمولی رو نوشتم بخاطر اینکه پروژه دوستمون رو که دیدم به این روش بود من هم براش اینجور نوشتم .

    اما در کل حق با شماست

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

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