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

نام تاپیک: ثبت اطلاعات در دیتابیس به صورت پیشرفته

  1. #1
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    ثبت اطلاعات در دیتابیس به صورت پیشرفته

    با سلام و تبریک سال نو
    چه طور در داخل یک تکست باکس ، هر خط تکست باکس را در داخل دیتا بیس در یک ردیف ذخیره کند
    مثلا من در یک تکست باکس سه خط اطلاعات نوشتم می خوام هر خط اطلاعات در یک ردیف در دیتا بیس ذخیره شود
    لطفا راهنمایی کنی
    در SQL SERVER
    2005

  2. #2

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    نقل قول نوشته شده توسط sam166 مشاهده تاپیک
    با سلام و تبریک سال نو چه طور در داخل یک تکست باکس ، هر خط تکست باکس را در داخل دیتا بیس در یک ردیف ذخیره کند مثلا من در یک تکست باکس سه خط اطلاعات نوشتم می خوام هر خط اطلاعات در یک ردیف در دیتا بیس ذخیره شود لطفا راهنمایی کنی در SQL SERVER 2005
    سلام.
    برای اینکار شما می تونید با کلاس StringReader، متود ReadLine، خط به خط نوشته ها رو از TextBox بگیرید، و سپس، اونها رو بعنوان پارامترهای یک Stored Procedure به SQL Server بدید و SP مزبور هم داده ها رو ذخیره کنه. روش دیگه این هستش که با توابع String-Related موجود در SQL Server، داده ها رو خط به خط در SP مزبور جدا کنید (جای استفاده از String Reader)، و همونجا همه رو ذخیره کنید. روش دیگه اینه که داده ها رو با StringReader خط به خط جدا کنید، یه XML بسازید، XML رو بعنوان پارامتر به SP بدید تا SP همه رو اونجا به یک Command ذخیره کنه. من دقیقا متوجه نیازتون نمیشم، اما قاعدتا هر کدوم از این روشهایی که توضیح دادم، میتونه راهگشای شما باشه.

    موفق باشید.

  3. #3

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    سلام ،

    آقاي موسوي من فكر ميكنم مشكلشون چيزه ديگه اي بوده باشه .
    شايد ايشون ميخوان وقتي متني رو در Textarea درج ميكنند چند خطي هست و وقتي اون رو در ديتابيس ذخيره ميكنند Enter ها ذخيره نميشه . بنابراين هنگام بازيابي و انتصاب دادن از ديتابيس به كنترلها عملا Enter ها از بين رفته و همه رو دريك خط نشون ميده .

    من در اين موارد \r\n رو با <br /> جايگزين ميكنم ، مثلا :

    p.EnDescription = txtEnDescribtion.Text.Replace("\r\n", "<br />");

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

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    ببینید دوستان گلم
    من در صفحه ای از سایتم 3 تا text box دارم و می توان اطلاعات هر 3 را در دیتا بیس ذخیره کنم .
    حالا من می خوام تکست باکس دومی زمانی که داخلش تایپ می شه در هر خط آن می خوام فقط 11 کاراکتر تایپ بشه
    و زمانی که اینتر زدم در خط بعد هم همینطور
    حالا می خوام هر خط را در دیتابیس با تکست باکس های دیگر در یک row در دیتا بیس ذخیره کنم

    به فرض مثال در تکست باک اول "site"
    در تکس باکس دوم نوشته شده در هر خط
    "12"
    "13"
    "14"
    "15"

    و در تکس باکس سوم نوشته شده "iran"

    حالا زمانی که من کلید ثبت اطلاعات را زدم به این صورت در دیتابیس ذخیره شود

    site 12 iran
    site 13 iran
    site 14 iran
    site 15 iran

    لطفا اگر میتوانید به صورت مثال توضیح دهید

  5. #5

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    string txt1 = textBox1.Text;
    string [] txt2 = (textBox2.Text).Split('\n');
    string txt3 = textBox3.Text;

    StringBuilder sb = new StringBuilder();

    foreach (string str1 in txt2)
    {
    sb.Append(txt1)
    .Append(' ')
    .Append(str1)
    .Append(' ')
    .Append(txt3);

    MyDBInsertMethod(sb.ToString());
    sb.Clear();
    }

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

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    دوست عزیز ممنون
    اگر در مورد این قسمت توضیح دهید خیلی کمک کردید
    StringBuilder sb = new StringBuilder();

    foreach (string str1 in txt2)
    {
    sb.Append(txt1)
    .Append(' ')
    .Append(str1)
    .Append(' ')
    .Append(txt3);

    MyDBInsertMethod(sb.ToString());
    sb.Clear();

  7. #7
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    منظور از این ها چیست :
    StringBuilder
    MyDBInsertMethod

    foreach

  8. #8
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    مشهد
    پست
    232

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    نقل قول نوشته شده توسط sam166 مشاهده تاپیک
    منظور از این ها چیست :
    StringBuilder

    foreach
    سلام دوسته من
    من این دوتا رو میدونم چیه
    StringBuilder که یک کلاس برای کار با رشته هاست
    بصورت کلی در حالتیکه اعمال تغییرات زیاد روی رشته ها نیاز باشد بهتر است آبجکتی از کلاس StringBuilder ساخته و با خاصیت Append آن کار کنیم
    دستوره froeach برای حرکت بر روی Collectionها مناسب است
    For Each ctl As Control In Me.Controls
    If TypeOf ctl Is TextBox Then
    ctl.Text = "Hi Vb"
    End If
    Next

    مثلا این قطعه کد که به textbox موجود روی فرم یک مقدار اضافه میکنه

  9. #9
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    دوست عزیز کدی که من برای ثبت اطلاعاتم د دیتا بیس استفاده کردم به صورت زیر است
    protected void Button1_Click(object sender, EventArgs e)

    {
    try
    {
    string conString = ConfigurationManager.ConnectionStrings["ASPNETDB_ConnectionString"].ConnectionString;
    SqlConnection con = new SqlConnection(conString);
    SqlCommand cmd = con.CreateCommand();
    try
    {
    con.Open();
    cmd.CommandText = "INSERT INTO s_user (fullname, username, gender) VALUES (@Value1, @Value2, @Value3)";
    cmd.Parameters.Add("@Value1", SqlDbType.NVarChar).Value = TextBox1.Text;
    cmd.Parameters.Add("@Value2", SqlDbType.NVarChar).Value = TextBox2.Text;
    cmd.Parameters.Add("@Value3", SqlDbType.NVarChar).Value = TextBox3.Text;
    cmd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    label_Message.Text = ex.Message;
    }
    finally
    {
    con.Close();
    }
    }
    catch (Exception exc)
    {
    label_Message.Text = exc.Message;
    }
    }


    حالا کد شما را در کجای این قرار بدم
    تشکر می کنم اگر زودتر جواب بنده را بدید
    کارم گیر است

  10. #10
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    آقا من منتظرم

  11. #11
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    از اساتید محترم تقاضا دارم این مشکل بنده را حل کنند
    من در پست چارم به طور کامل توضیح دادم چه کار میخوام بکنم

    با راهنمایی یکی از دوستان که گفتند هر خط تکست باکس را باید در ارایه قرارداد
    حالا باید این ارایه را در کدی که من برای ثبت اطلاعاتم استفاده میکنم چه طور اضافه کنم

    string[] lines=Textbox1.Text.Split(new char[]{'\n'});


    for(int i=0;i<lines.length;i++)
    {


    // insert into db


    }

  12. #12
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    من اینطوری درج کردم ولی نشد
    protected void Button1_Click(object sender, EventArgs e)
    {
    try
    {
    string[] lines = TextBox2.Text.Split(new char[] { '\n' });
    string conString = ConfigurationManager.ConnectionStrings["ASPNETDB_ConnectionString"].ConnectionString;
    SqlConnection con = new SqlConnection(conString);
    SqlCommand cmd = con.CreateCommand();
    try
    {
    con.Open();
    for (int i = 0; i < lines.Length; i++)
    {
    cmd.CommandText = "INSERT INTO s_user (fullname, username, gender) VALUES (@Value1, @Value2, @Value3)";
    cmd.Parameters.Add("@Value1", SqlDbType.NVarChar).Value = TextBox1.Text;
    cmd.Parameters.Add("@Value2", SqlDbType.NVarChar).Value = lines;
    cmd.Parameters.Add("@Value3", SqlDbType.NVarChar).Value = TextBox3.Text;
    cmd.ExecuteNonQuery();
    }
    }
    catch (Exception ex)
    {
    label_Message.Text = ex.Message;
    }
    finally
    {
    con.Close();
    }
    }
    catch (Exception exc)
    {
    label_Message.Text = exc.Message;
    }

    در ضمن من در این خط جای lines را نیز textbox2.text قرار دادم ولی نشد

    cmd.Parameters.Add("@Value2", SqlDbType.NVarChar).Value =textbox2.text ; 

  13. #13
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    من نمی دونم از ارایه چه طور استفاده کنم

  14. #14
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    این دو ارور زیر را نیز موقعی که کلید ثبت را میزنیم می دهد

    زمانی که در خط 16 نوشته شود lines

    Failed to convert parameter value from a String[] to a String.

    این ارور را نیز زمانی که در همان خط نوشته شود textbox2.text

    The variable name '@Value1' has already been declared. Variable names must be unique within a query batch or stored procedure.

  15. #15
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    از اقا بهروز و بقیه اساتید تقاضا دارم این مشکل بنده را حل بکنند

  16. #16

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    نقل قول نوشته شده توسط sam166 مشاهده تاپیک
    به فرض مثال در تکست باک اول "site"
    در تکس باکس دوم نوشته شده در هر خط
    "12"
    "13"
    "14"
    "15"

    و در تکس باکس سوم نوشته شده "iran"

    حالا زمانی که من کلید ثبت اطلاعات را زدم به این صورت در دیتابیس ذخیره شود

    site 12 iran
    site 13 iran
    site 14 iran
    site 15 iran

    لطفا اگر میتوانید به صورت مثال توضیح دهید
    سلام.
    آخه اصلا همچین نیازی از بیخ و بن اشکال داره. کاملا روشن هستش که UI ای که در نظر گرفته اید، مناسب اینکار نیست. چه اتفاقی باید بیفته اگه تو TextBox دوم، سه ردیف زده بشه ولی تو TextBox سوم، 5 ردیف؟؟؟ اینجا چظور می خواهید اطلاعات ذخیره بشه؟

    به اعتقاد من باید UI اتون رو تغییر بدید و چیز مناسبی درست کنید. میشه دقیق بفرمایید این اطلاعات چی هستن تا بتونم بهتر بهتون کمک کنم؟ منظورم TextBox دوم و سوم، چه اطلاعاتی رو در خودشون نگهداری میکنن؟

    موفق باشید.

  17. #17
    کاربر دائمی آواتار sam166
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ???????
    پست
    508

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    خوی شما یک UI پیشنهاد بدید

  18. #18
    کاربر دائمی آواتار mohammad.sakhidel
    تاریخ عضویت
    آبان 1388
    محل زندگی
    ارومیه
    سن
    37
    پست
    162

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    ببین دوست من ، اولاً سوالت کاملاً نامفهومه انتظار نداشته باش جواب خوبی بگیری.
    دوماً شما با بعضی مفاهیم پایه ای مشکل داری (مثل آرایه) و حالا فرضاً این مشکلت حل شد یکی دیگه درست میشه.
    بنظر من شما باید یه کتاب خوب بذاری جلوت و حداقل این مفاهیم پایه ای رو با دقت بخونی.
    برای این مشکلت هم یه تصویر از صفحت و یه تصویر از جدول دیتابیست بذاری میتونیم کمکت کنیم.




    -----------------------------------------------------------------
    بازار مرزی ایرانیان :: تجربه یک خرید ارزان و با کیفیت
    آخرین ویرایش به وسیله mohammad.sakhidel : دوشنبه 22 فروردین 1390 در 19:49 عصر

  19. #19

    نقل قول: ثبت اطلاعات در دیتابیس به صورت پیشرفته

    نقل قول نوشته شده توسط sam166 مشاهده تاپیک
    خوی شما یک UI پیشنهاد بدید. تکست باکس اول متن پیامک را از کاربر میگیرد تکست باکس دوم شماره های همراه را که هر کدام در یک خط هستند را میگیرد.
    سلام.
    می دونید مشکل چیه؟ در واقع مشکل اینه که سوال اصلی رو پنهان می کنید و بدنبال پاسخ به سوالی هستید که فکر می کنید راه گشای شماست. با این توضیحی که در پیام خصوصی به من دادید، شما یک TextBox دارید که توش متن پیام رو وارد می کنید و TextBox ای دارید که شماره تلفن ها رو خط به خط وارد می کنید. حالا نیاز دارید هر خطر از اون TextBox به شماره ای که در خط متناظر در TextBox دیگه ای هست، در بانک نگهداری بشه. درسته؟
    برای اینکار می تونید شماره ها /خطوط پیام رو همونطوری که قبلا هم گفتم خط به خط جدا کنید (با StringReader، Regular Expression، Split و ...) بعبارت دیگه:


    Debug.Assert(!string.IsNullOrEmpty(this.txtNumbers .Text));
    Debug.Assert(!string.IsNullOrEmpty(this.txtMessage s.Text));

    List<KeyValuePair<string/*phoneNr*/, string/*message*/>> list = new List<KeyValuePair<string, string>>();
    using (StringReader reader = new StringReader(this.txtNumbers.Text))
    {
    string phoneNr = null;
    while ((phoneNr = reader.ReadLine()) != null)
    list.Add(new KeyValuePair<string, string>(phoneNr, null));
    }

    int index = -1;
    using (StringReader reader = new StringReader(this.txtMessages.Text))
    {
    string message = null;
    while ((message = reader.ReadLine()) != null && (++index) < list.Count)
    list[index] = new KeyValuePair<string, string>(list[index].Key, message);
    }


    بدین ترتیب، یک list داریم از زوج مرتبهای "شماره تلفن" و "پیام"... حالا باید توی یک حلقه، اینها رو به Stored Procedure خودمون بفرستیم. یا دونه به دونه رکوردها رو Insert کنیم، یا همه رو بصورت یک XML بفرستیم به SP، اونجا یک ضرب همه رو Insert کنیم:


    foreach (KeyValuePair<string, string> item in list)
    {
    string phoneNr = item.Key, message = item.Value;
    //Open the connection to the underlying database
    //Create a new command
    //Populate the Parameters collection of the command using (phoneNr, message) pair...
    //Execute the command
    }


    من این بخش رو دیگه کدی براش ننوشتم، خودتون می تونید از پسش بر بیایید. فقط براتون یکسری Comment نوشتم که بدونید چی کار باید کنید.

    موفق باشید.

    پاورقی: ببینید. من اینجام تا سر نخها رو به برنامه نویسها بدم، نه اینکه بشینم براشون کد بنویسم. نوشتن این پیام از من 20 دقیقه وقت برد، اگر وقت برای شما ارزشمنده، برای من هم هست. لطفا از این پس سوالاتتون رو از همون ابتدا واضح و روشن مطرح کنید تا از همون ابتدا پاسخ صحیح و روشنی هم دریافت کنید. در مورد UI هم، خوب چرا از چندین TextBox استفاده نمیکنید؟ چه دلیلی داره شماره ها و پیامها رو بصورت Bulk به برنامه بدید تا برنامه بخواد با این همه تلاش اونها رو Extract کنه و ...؟ تازه دقت کنید که کد فوق، هیچگونه Checking ای نداره، اینکه تعداد خطوط TextBox پیامها و شماره ها یکی باشه، Trim بشه که یه موقع خالی رد نشده باشه و و و ... اینها رو هم خودتون باید به کد اضافه کنید. اما من اسکلت اصلی رو براتون نوشتم. امیدوارم اینبار بتونید مشکلتون رو حل کنید.

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

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