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

نام تاپیک: مشکل آیدنتیتی بودن و حذف سطور

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

    مشکل آیدنتیتی بودن و حذف سطور

    *کدی که برای حذف اطلاعات یک سطر از دیتا بیس اسکیوئل سرور 2000 استفاده می کنم بصورت زیر است. در ضمن نوع داده ردیف
    را آیدنتیتی قرار دادم.
    حالا اگر از 5 تا سطری که داریم سومی را حذف کنیم عدد 3 از سطر کاملا پاک شده و چون آیدنتیتی است ازعدد 6 سطر جدید را ایجاد می کند و ...خب مشخصه که نمایش داده ها به این شکل خیلی زشت است که ردیف 3 نداشته باشیم!
    نمونه :

    try
    {
    string strCon = ConfigurationSettings.AppSettings["ConnStr"&#9 3;;
    SqlConnection conn = new SqlConnection(strCon);

    String strCmd = "DELETE FROM tblUser "+
    " WHERE row=@Id1";

    SqlCommand cmd = new SqlCommand(strCmd, conn);


    cmd.Parameters.Add(new SqlParameter("@Id1",
    SqlDbType.Int, 4));
    // Initialize the SqlCommand "@Id1" parameter to the ID of the row
    // that was clicked.
    cmd.Parameters["@Id1"].Value =
    DataGrid1.DataKeys[(int)e.Item.ItemInd ex];

    conn.Open();

    cmd.ExecuteNonQuery();
    conn.Close();

    // Reset the edit mode for the current item
    DataGrid1.EditItemIndex = -1;

    // create data source again.........
    bindToUser();
    }
    catch(Exception e2)
    {
    Label1.Text=e2.Message.ToString();
    }
    }

    به نظر شما برای اینکه شماره ها ترتیب عددی اشان را حفظ کرده در عین حال مرتب بوده و در ضمن در دیتا گرید مشکلی برای حذف آنها نباشد چکار باید کرد.
    لازم به تذکر است که ما برای افزودن کاربران جدید نیاز به حالت آتو نامبرینگ داریم و غیر قابل اجتناب می باشد.

  2. #2
    کاربر دائمی آواتار Mahdavi
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    ایران - میگن تهرون
    پست
    606
    دوست عزیز آیا اجباری هست که کدی که در row نشان میدهید سریال کاربر باشد ؟
    در ضمن درست نیست که با حذف شدن یک کاربر سریال کاربرهای دیگر شیفت بخورند !!!
    اگه فقط شما یه شمارنده واسه تعداد سطرها میخواید بگید تا کدشو بدم .
    موفق باشید

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    آیا اجباری هست که کدی که در row نشان میدهید سریال کاربر باشد ؟
    1-ممکنه در این مورد بیشتر توضیح بدهید.چون اگر به کدی که برای حذف هر سطر در بنامه ASP.NETنوشته توجه کنید متوجه نیاز استففاده از ROWمی شوید.
    2-البته که می خواهم. لطف بفرمایید.
    faramarz_s@hotmail.com

  4. #4
    کاربر دائمی آواتار Mahdavi
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    ایران - میگن تهرون
    پست
    606
    با سلام
    بازم نیازی به نمایش نیست. میتونی visable اونو false کنی. ازش استفاده کن ولی نمایش نده.
    واسه شمارنده هم :


    -1 ابتدا کد زیر رو به کلاست اضافه کن :

    private int Count=0;
    public string Counter()
    {
    ++Count;

    return Count.ToString();
    }



    2- یه ستون از datagrid تو tempelet column کنی
    3- یه Label بزاری
    4-تو databinding تو خاصیت text گزینه Custom رو انتخاب کن و بنویس
    Counter()
    و تمام

  5. #5
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    1-ویزیبل یک سطر از دیتا گرید را چگونه باید فالس کنم؟
    2-تشکر از کانتر خیلی خوبه :wink:

  6. #6
    کاربر دائمی آواتار Mahdavi
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    ایران - میگن تهرون
    پست
    606
    این رو قبلا تو همین قسمت جواب دادم
    یه نگاه میکردی پیدا میکردی

    http://www.barnamenevis.org/viewtopic.php?t=5820

  7. #7
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

    Source Error:


    Line 40: {
    Line 41: bindToUser();
    Line 42: DataGrid1.Columns[1].Visible=false;
    Line 43: }
    Line 44:

    :cry:

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    برای اینکه ویزیبل یک ستون نه سطر را فالس کرد فقط کافی است هنگامیکه که می خواهید کوئری بگیرید نام این فیلد را نیاورید
    بنابراین بجای استفاده از :
    select * from myTable
    بهتر است کمی حوصله بخرج دهید و بنویسید:
    select f1,f2,f5 from myTable

    موفق باشید

  9. #9
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    البته و صد البته و بنده هم این را امتحان کرده بودم برای همین روال را دوباره اجرا کردم تا به شما هم نشان دهم:
    void bindToUser()
    {
    string strCon = ConfigurationSettings.AppSettings["ConnStr"&#9 3;;
    SqlConnection wg = new SqlConnection(strCon);

    SqlDataAdapter dtAdap = new
    SqlDataAdapter("select username,email,Roles from tblUser",wg);

    DataSet dsetSales = new DataSet();
    dtAdap.Fill(dsetSales, "tblUser");

    DataGrid1.DataSource = dsetSales.Tables["tblUser"].DefaultView;
    DataGrid1.DataBind();

    }

    Server Error in '/edu/nahie' Application.
    --------------------------------------------------------------------------------

    DataBinder.Eval: 'System.Data.DataRowView' does not contain a property with the name row.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Web.HttpException: DataBinder.Eval: 'System.Data.DataRowView' does not contain a property with the name row.

    Source Error:


    Line 80:
    Line 81: DataGrid1.DataSource = dsetSales.Tables["tblUser"].DefaultView;
    Line 82: DataGrid1.DataBind();
    Line 83:
    Line 84: }


  10. #10
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    کد فوق از DataBinder.Eval شما ایراد گرفته و نه چیز دیگری.
    وقتی بایند می کنید عبارت اس کیوال شما باید حاوی فیلدی که در DataBinder.Eval هم می خواهید استفاده کنید ، باشد.

  11. #11
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    استاد عزیز مشکل همین جاست که ما>>>>>>>
    DataBinder.Eval: 'System.Data.DataRowView' does not contain a property with the name row.
    does not contain a property with the name row
    همین فیلد row را نمی خواهیم نشان دهیم :wink:
    همین row را می خواهم ناپدید کنم!!!! :lol:

  12. #12
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    شما بهتر است در این حالت تمام ستون ها را به صورت template تعریف کنید و سپس AutoGenerateColumns‌ آنرا false کنید.
    در ضمن کمی فکر کردن و کمی مطالعه بجای خندیدن توصیه می شود.

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

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