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

نام تاپیک: ارسال از EXCEL به SQL

  1. #1
    کاربر تازه وارد آواتار akarsu
    تاریخ عضویت
    فروردین 1389
    پست
    78

    Question ارسال از EXCEL به SQL

    سلام دوستان
    محبت کنید کمکم کنید
    من یه برنامه میخوام بنویسم که با زدن یک دکمه در آن بتونم یک فایل exel انتخاب کنم ( مثلا : 2 ستونه . شماره دانشجویی - نام ) و بعد از انتخاب آن بیاد و کل اطلاعات جدول منو در sql پاک کنه و اون اطلاعات رو درون اون ذخیره کنه (که در این پایگاه داده هم دو فیلدی است .شماره دانشجویی - نام) و نمونه فایل exel ضمیمه کردم
    من با اکسل اصلا کار نکردم و اگه برنامه کوچکی برام بدین که با اون شروع کنم ممنون میشم

    و در Microsoft Visual Studio 2012 , exel 2013 کار میکنم در ویندوز 7 64bit
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله akarsu : دوشنبه 27 بهمن 1393 در 15:50 عصر

  2. #2

    نقل قول: کمک ----> ارسال از EXEL به SQL

    سلام منم این مشکل رو داشتم ولی هرکار کردم جواب نداد
    خیلی کدهای مختلف رو امتحان کردم، دوستان اگر می دونن بگن منم ممنون میشم.
    آخرشم من رفتم از توی خود اسکیوال داده ها رو وارد کردم، یک گزینه import data داره که از اون میشه فایل اکسل رو وارد کرد و به عنوان یک جدول داخل دیتابیست اضافه کنی یا با نام جدید ذخیرش کنی.
    اینم لینک پست من
    https://barnamenevis.org/showthread.p...A8%DB%8C%D8%B3

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

  3. #3
    کاربر تازه وارد آواتار akarsu
    تاریخ عضویت
    فروردین 1389
    پست
    78

    نقل قول: کمک ----> ارسال از EXEL به SQL

    یکی راهنمای کنه خواهشن
    نه من باید از داخل نرم افزار این کارو انجام بدم یعنی کاربر انجام بده چون مثلا 10 روز به 10 روز یه فایل میاد که باید جایگذین بشه
    من زیاد گشتم اما پیدا نکردم
    از شما هم ممنونم

  4. #4

    نقل قول: ارسال از EXEL به SQL

    سلام
    یک نمونه برنامه آماده کردم ببینید

    روال استفاده:
    1- با کلیک روی دکمه "انتخاب فایل اکسل" یک فایل انتخاب کنید
    2- از کمبو باکس "جدول های موجود" یک WorkSheet انتخاب کنید
    3- با وارد کردن نام مورد نظر جدول Sql دکمه "تبدیل به اسکیوال" رو کلیک کنید
    * جدول نباید از قبل در دیتابیس شما موجود باشه ، در غیر اینصورت کد برنامه رو مطابق نیاز خودتون تغییر بدید



    نکاتی که باید بهشون توجه کنید
    1- رفرنس Microsoft.Office.Interop.Excel رو حتما داخل پروژه خودتون اضافه کنید
    2- کانکشن استرینگ Sql Server رو با توجه به سیستم خودتون اصلاح کنید
    3- به جهت اینکه این برنامه یه مثال هست ، کانکشن استرینگ رو بصورت ثابت داخل کد نوشتم و اینکه کنترل خطاهای برنامه و اعتبار سنجی ها در حد نیاز همین برنامه انجام شده ، قطعا در پروژه های واقعی باید اصلاحاتی در کد انجام بدید.



    موفق باشید
    فایل های ضمیمه فایل های ضمیمه
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  5. #5
    کاربر تازه وارد آواتار akarsu
    تاریخ عضویت
    فروردین 1389
    پست
    78

    نقل قول: ارسال از EXCEL به SQL

    واقعا ممنونم از محبتی که کردین من نگاه میکنم اگه مشکلی داشتم میپرسم
    آخرین ویرایش به وسیله akarsu : دوشنبه 20 بهمن 1393 در 20:53 عصر

  6. #6

    نقل قول: ارسال از EXEL به SQL

    سلام مرسی فوق العاده بود. من تست کردم واقعا عالی بود ممنون.

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

    نقل قول: ارسال از EXEL به SQL

    نقل قول نوشته شده توسط Mohammad.Ashtiani مشاهده تاپیک
    جدول نباید از قبل در دیتابیس شما موجود باشه ، در غیر اینصورت کد برنامه رو مطابق نیاز خودتون تغییر بدید ...
    موفق باشید
    سلام و ممنون بابت کد !
    الان من جدول رو از قبل دارم ... و اطلاعاتی هم توش هست ، باید به اطلاعاتی که از قبل وجود داره اضافه بشه :
    چطور آخرین ID رو تشخیص بده که از ادامه اون شروع کنه ؟

    اطلاعات (فیلدهای) جدول و اکسل یکسان هستن !

  8. #8

    نقل قول: ارسال از EXCEL به SQL

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


    //ساخت جدول مورد نظر در اسکیوال
    query = "create table " + TableName + "(" + dt.Columns[0].ToString().Replace(" ", "_") + " varchar(200)";
    for (int i = 1; i < TotalCols; i++)
    {
    string ActualField = dt.Columns[i].ToString();
    string FinalField = ActualField.Replace(" ", "_");
    query += "," + FinalField + " varchar(200)";
    }
    query += ")";
    cmd.CommandText = query;
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();



    برای ID هم اگر مقدار خصوصیت Is Identity فیلد ID شما True باشه ، نیاز نیست خودتون کاری بکنید ، SqlServer بصورت خودکار به رکوردهای جدید ID اختصاص میده.


    موفق باشید
    آخرین ویرایش به وسیله محمد آشتیانی : سه شنبه 21 بهمن 1393 در 13:37 عصر
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  9. #9
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    Lightbulb نقل قول: ارسال از EXCEL به SQL

    بازم ممنون ...
    از Identity استفاده نمیکنم ، ظاهرا وقتی یه فیلد رو (به هر دلیل) کاربر حذف میکنه ، ترتیب رو مجدد درست نمیکنه ؟
    -----------
    دارم انجامش میدم ، سوالی بود می پرسم .

  10. #10
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: ارسال از EXCEL به SQL

    آقای آشتیانی بازم سلام ...
    دقیقا به همون مشکل با Id خوردم (که اگه یه آیدی تکراری باشه خطا میده)
    --------------
    و اینکه متن فارسی رو بصورت علامت سوال (؟) ذخیره میکنه !
    به این قسمت ربط داره :

    System.Threading.Thread.CurrentThread.CurrentCultu  re = new System.Globalization.CultureInfo("en-US");


    --------------
    در کل خیلی عالیه !
    ممنون

  11. #11

    نقل قول: ارسال از EXCEL به SQL

    نقل قول نوشته شده توسط ghasem110deh مشاهده تاپیک
    و اینکه متن فارسی رو بصورت علامت سوال (؟) ذخیره میکنه !
    به این قسمت ربط داره :

    System.Threading.Thread.CurrentThread.CurrentCultu  re = new System.Globalization.CultureInfo("en-US");

    سلام
    خیر به این مربوط نمیشه ، این در واقع بالاجبار باید باشه در غیر اینصورت گاهی خطا ایجاد میشه و این البته به خاطر یه باگ هست از طرف مایکروسافت

    داستان ذخیره علامت سوال یه داستان تکراریه که در صورت جستجو کردن خودت میتونستی رفعش کنی (قبل از value ها یه N باید بذاری) کد زیر رو نگاه کن


    //کپی اطلاعات جدول انتخاب شده
    query = string.Empty;
    con.Open();
    for (int ins = 0; ins < TotalRows; ins++)
    {
    query = "insert into " + TableName + " values(N'" + dt.Rows[ins][0];
    for (int co = 1; co < TotalCols; co++)
    {
    query += "',N'" + dt.Rows[ins][co].ToString();
    }
    query += "')";
    cmd.CommandText = query;
    cmd.ExecuteNonQuery();



    ببین کنترل کردن آیدی با توجه به اینکه is identity نیست به خودت بستگی داره ، برای مثال با کوئری زیر آخرین آیدی ثبت شده رو میگیری و بعلاوه یک میکنی و بقیه ماجرا ، چیزی مثل این:

    //کپی اطلاعات جدول انتخاب شده
    query = string.Empty;
    con.Open();
    for (int ins = 0; ins < TotalRows; ins++)
    {
    query = "insert into " + TableName + " values((SELECT Max(id) FROM " + TableName + ") + 1 , N'" + dt.Rows[ins][0];
    for (int co = 1; co < TotalCols; co++)
    {
    query += "',N'" + dt.Rows[ins][co].ToString();
    }
    query += "')";
    cmd.CommandText = query;
    cmd.ExecuteNonQuery();
    }
    con.Close();



    تو این کوئری من فرض کردم تو جدولت یه فیلد به اسم id داری و هربار تو کوئری نسبت به آخرین مقدارش یک واحد بیشتر میشه (همچنان به ترتیب فیلدها دقت کن!!!)
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  12. #12
    کاربر تازه وارد آواتار akarsu
    تاریخ عضویت
    فروردین 1389
    پست
    78

    نقل قول: ارسال از EXCEL به SQL

    این ارور میده به من دلیلش چیه ؟:(
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 1.jpg‏ (70.2 کیلوبایت, 419 دیدار)

  13. #13

    نقل قول: ارسال از EXCEL به SQL

    سلام
    شما Microsoft Access Database Engine 2010 Redistributable رو از لینک زیر دانلود و نصب کن، حل میشه
    http://www.microsoft.com/en-gb/downl....aspx?id=13255



    موفق باشید
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

  14. #14
    کاربر تازه وارد آواتار akarsu
    تاریخ عضویت
    فروردین 1389
    پست
    78

    نقل قول: ارسال از EXCEL به SQL

    ممنونم مهندس جان
    اما حل نشد باز باز ارور میده

  15. #15
    کاربر دائمی آواتار systam
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    مشهد (امام رضا (ع))
    پست
    973

    حل مشکل ذخیره کردن اطلاعات اکسل در دیتا بیس sql

    سلام بر دوستان بزرگوارم
    توی سایت هم جستجو کردم چیزی پیدا نکردم
    این برنامه ای که ضمیمه کردم دوتا مشکل داره
    asasasas.jpg
    زمانی برنامه رو باز میکنه اطلاعات رو از یک فایل اکسل میخونه میریزه در داخل دیتا گرید
    اولین مشکلش روی دکمه ذخیره اطلاعات کلیک میکنی میاد اطلاعات سطر به سطر گرید ویو در دیتا بیس ذخیره میکنه فقط سطر اول رو ذخیره میکنه و خطا میده
    sdfsd.jpg
    و برنامه میندیم دوباره بازش میکنیم روال بالا رو انجام میدیم همین خطا رو میده ولی همه اطلاعات گرید ویو رو در بانک ذخیره مکینه ؟
    و سوال دوم
    چطوری چک کنم اطلاعات گریدویو تکراری دیگه ثبت نشه در دیتا بیس ؟
    از بزرگوراران ممنون میشم راهنماییم کنید خیلی ها همچین مشکلی رو دارن
    یا علی
    فایل های ضمیمه فایل های ضمیمه

  16. #16
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: حل مشکل ذخیره کردن اطلاعات اکسل در دیتا بیس sql

    سلام
    واسه خوندن اکسل و ذخیره در دیتابیس ...

    متدهای زیر رو ایجاد کنید :

    int TotalSheets, TotalCols, TotalRows;

    private void SelectExcelFile()
    {
    OpenFileDialog OFD = new OpenFileDialog();
    Excel.Application ExApp = new Microsoft.Office.Interop.Excel.Application();
    cboSheet.Items.Clear();
    txtAddress.Text = string.Empty;
    OFD.Filter = "Excel Files (*.xlsx)|*.xlsx|All Files(*.*)|*.*";
    OFD.InitialDirectory = @"c:\";
    OFD.FileName = "Select File";
    OFD.Title = "Select excel file..";
    if (OFD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
    try
    {
    string exFile = OFD.FileName;
    txtAddress.Text = exFile;
    System.Globalization.CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCultu re;
    System.Threading.Thread.CurrentThread.CurrentCultu re = new System.Globalization.CultureInfo("en-US");
    Excel.Workbook MyWorkbook = ExApp.Workbooks.Open(exFile, 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
    TotalSheets = MyWorkbook.Worksheets.Count;
    foreach (Excel.Worksheet worksheet in MyWorkbook.Worksheets)
    {
    cboSheet.Items.Add(worksheet.Name);
    }
    MyWorkbook.Close(false, false, false);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }
    }


    private System.Data.DataTable GetData(string ExcelFile, string SheetName)
    {
    string constr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFile + ";Extended Properties=Excel 12.0";
    string olecmd = "select * from [" + SheetName + "$]";
    OleDbConnection con = new OleDbConnection(constr);
    OleDbCommand cmd = new OleDbCommand(olecmd, con);
    OleDbDataAdapter da = new OleDbDataAdapter();
    System.Data.DataTable dt = new System.Data.DataTable();
    con.Open();
    da.SelectCommand = cmd;
    da.Fill(dt);
    TotalCols = dt.Columns.Count;
    TotalRows = dt.Rows.Count;
    con.Close();
    return dt;
    }


    private void ExportData(string TableName)
    {
    string query = null;
    System.Data.DataTable dt = new System.Data.DataTable();
    dt = GetData(txtAddress.Text, cboSheet.SelectedItem.ToString());
    try
    {
    SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=AnbarDB;Integrated Security=True");
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    query = string.Empty;
    con.Open();
    for (int ins = 0; ins < TotalRows; ins++)
    {
    query = "insert into " + TableName + " values(N'" + dt.Rows[ins][0];
    for (int co = 1; co < TotalCols; co++)
    {
    query += "',N'" + dt.Rows[ins][co].ToString();
    }
    query += "')";
    cmd.CommandText = query;
    cmd.ExecuteNonQuery();
    }
    con.Close();
    MessageBox.Show("انتقال رکورد ها از اکسل به دیتابیس با موفقیت انجام شد", "خواندن از اکسل", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
    DGV();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message + "خطا :");
    }
    }


    دکمه انتخاب فایل اکسل :

    SelectExcelFile(); // انتخاب فایل اکسل


    اینم دکمه درج در دیتابیس :

    if ((txtAddress.Text != string.Empty) && (cboSheet.SelectedIndex != -1) && (نام جدول != string.Empty))
    ExportData(txtTable.Text);


    تکست باکس هم جهت نمایش مسیر فایل اکسل هستش و cboSheet یک کمبوباکسه (بدون آیتم) که شیت ها رو نمایش میده !

    امیدوارم به کارت بیاد :)

  17. #17
    کاربر دائمی آواتار systam
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    مشهد (امام رضا (ع))
    پست
    973

    نقل قول: ارسال از EXCEL به SQL

    سلام
    استاد اشتیانی دمت گرم ایول الله
    اقا یک سوال
    ذخیره علامت سوال یه داستان تکراریه که در صورت جستجو کردن خودت میتونستی رفعش کنی (قبل از value ها یه N باید بذاری) کد زیر رو نگاه کن
    اون N چی کاری انجام میده ؟
    اول من نذاشتمش رکورد های فارس رو علامت سوال میزاشت و اونها رو در کد نویسی اضافه کردم درست شد

  18. #18

    نقل قول: ارسال از EXCEL به SQL

    سلام
    اون N باعث میشه Sql Server رشته ها رو بصورت یونیکد Unicode ذخیره کنه.
    قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]

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

    نقل قول: ارسال از EXCEL به SQL

    نقل قول نوشته شده توسط akarsu مشاهده تاپیک
    ممنونم مهندس جان
    اما حل نشد باز باز ارور میده
    از لینک زیر 2007 Office System Driver: Data Connectivity Components را نصب بفرمایید حل می شود

    http://www.microsoft.com/en-us/download/confirmation.aspx?id=23734


  20. #20
    کاربر تازه وارد آواتار Imenam
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    اصفهان
    پست
    54

    نقل قول: ارسال از EXCEL به SQL

    من یه جدول به نام Component دارم با یه سری ستون که فایل اکسل هم همون ستون ها با همون ترتیب داخلش هست ولی وقتی میخوام اطلاعات اکسل رو داخل sql بریزم با پیغامی که عکسشا گذاشتم مواجه میشم.یکی از ستون هام هم ID هست که is identity برابر true هست.
    شما میگید مشکل از کجاست؟؟Capture.PNG

  21. #21
    کاربر تازه وارد آواتار Imenam
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    اصفهان
    پست
    54

    نقل قول: ارسال از EXCEL به SQL

    نقل قول نوشته شده توسط Imenam مشاهده تاپیک
    من یه جدول به نام Component دارم با یه سری ستون که فایل اکسل هم همون ستون ها با همون ترتیب داخلش هست ولی وقتی میخوام اطلاعات اکسل رو داخل sql بریزم با پیغامی که عکسشا گذاشتم مواجه میشم.یکی از ستون هام هم ID هست که is identity برابر true هست.
    شما میگید مشکل از کجاست؟؟Capture.PNG


    حل شد دوستان عزیز
    تو اکسل ستون ID رو خالی گذاشتم درست شد.

  22. #22

    نقل قول: ارسال از EXCEL به SQL

    با سلام و تشکر.
    ولی این که Access Database Engine باید برای هر سیستم نصب بشه یا جزء فایل های نصبی قرار بگیره اصلا خوب نیست.

  23. #23
    کاربر تازه وارد آواتار rozitir
    تاریخ عضویت
    اردیبهشت 1394
    پست
    79

    Lightbulb سوال در مورد یک برنامه پیچیده

    سلام دوستان
    یک برنامه ای دارم که برای من که تاحالا اینطوری کار نکردم پیچیدست !!

    برنامه برای دفتر داری یک مدرست
    برنامه اینطوری هستش که اطلاعات دانش آموزان (نام و... ) رو یک فایل اکسل میخونه و به بانک باید ارسال کنش
    در داخل بانک علاوه بر اون فیلد های اکسل یکسری فیلد دیگه وجود داره مثلا ریاضی و زبان و... که باید خالی بمونه

    وقتی که دفتر خاست بتونه اون مقادیر رو داخل نرم افزار تعغیر بده و در آخر گزارش بگیره از بانک

    حالا سوال
    چطور اطلاعات فایل اکسل رو میتونم بفرستم به بانکم ؟؟؟؟(کاربر انخاب کنه و بفرسته)

    ممنون

  24. #24
    کاربر دائمی آواتار AmiN0012
    تاریخ عضویت
    آبان 1394
    محل زندگی
    جویبار
    پست
    309

    نقل قول: سوال در مورد یک برنامه پیچیده


    private void Btn_Browse_Click(object sender, EventArgs e)///roydad dokme entekhab file exel
    {
    try
    {
    OpenFileDialog openfiledialog1 = new OpenFileDialog();
    openfiledialog1.Filter = @"Excel 2003 Files (*.xls)|*.xls|Excel 2007 Files (*.xlsx)|*.xlsx";
    if (openfiledialog1.ShowDialog() == DialogResult.OK)
    {
    this.Txt_Path.Text = openfiledialog1.FileName;
    loadFile();
    }


    }
    catch { }
    }
    private void loadFile()//method
    {
    //try
    //{
    string PathConn = "";
    if ( System.IO.Path.GetExtension(Txt_Path.Text)=="xls")
    PathConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Txt_Path.Text +
    ";Extended Properties=\"Excel 8.0;HDR=YES;\";";
    else
    PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Txt_Path.Text +
    ";Extended Properties='Excel 12.0;HDR=YES;'";
    OleDbConnection conn = new OleDbConnection(PathConn);
    string Txt_Sheet = System.IO.Path.GetFileNameWithoutExtension(Txt_Pat h.Text);
    OleDbDataAdapter My_da = new OleDbDataAdapter("select * from [" + Txt_Sheet + "$]", conn);
    Dt = new DataTable();
    My_da.Fill(Dt);

    if (Dt.Columns.Count > 1)
    {
    DgvInfo.DataSource = Dt;
    DataGridViewColumn Columnlast = DgvInfo.Columns[DgvInfo.Columns.Count - 1];
    Columnlast.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    Lbl_Msg.Visible = false;
    Grp_Info.Visible = true;

    DgvInfo.Rows[0].Cells[DgvInfo.Columns.Count - 1].Selected = true;
    DgvInfo.DefaultCellStyle.Font = new Font("B Nazanin", 11);
    DgvInfo.ColumnHeadersDefaultCellStyle.Font = new Font("B Nazanin", 10);
    DgvInfo.AlternatingRowsDefaultCellStyle.Font = new Font("B Nazanin", 11);
    Cmb_Moshtari.Focus();
    }
    else
    {
    MessageBox.Show("این صفحه حاوی هیچ اطلاعاتی نمیباشد", "اخطار ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
    }
    //}
    //catch
    //{
    // MessageBox.Show("خطا در بارگذاری اطلاعات رخ داده است", "اخطار ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
    //}
    }


    //dar dokme darj dastor bank jahate darj ro benevis



  25. #25
    کاربر دائمی آواتار csharpcollegian
    تاریخ عضویت
    خرداد 1394
    محل زندگی
    تهران
    پست
    174

    نقل قول: سوال در مورد یک برنامه پیچیده

    سلام،
    اطلاعات فایل اکسل رو بیار توو یه دیتاگریدویو تا کاربر هر کدوم رو خواست انتخاب کنه
    بعد اطلاعات انتخاب شده در دیتاگریدویو رو ببر به دیتابیس...

  26. #26
    کاربر تازه وارد آواتار rozitir
    تاریخ عضویت
    اردیبهشت 1394
    پست
    79

    نقل قول: سوال در مورد یک برنامه پیچیده

    نقل قول نوشته شده توسط AmiN0012 مشاهده تاپیک

    private void Btn_Browse_Click(object sender, EventArgs e)///roydad dokme entekhab file exel
    {
    try
    {
    OpenFileDialog openfiledialog1 = new OpenFileDialog();
    openfiledialog1.Filter = @"Excel 2003 Files (*.xls)|*.xls|Excel 2007 Files (*.xlsx)|*.xlsx";
    if (openfiledialog1.ShowDialog() == DialogResult.OK)
    {
    this.Txt_Path.Text = openfiledialog1.FileName;
    loadFile();
    }


    }
    catch { }
    }
    private void loadFile()//method
    {
    //try
    //{
    string PathConn = "";
    if ( System.IO.Path.GetExtension(Txt_Path.Text)=="xls")
    PathConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Txt_Path.Text +
    ";Extended Properties=\"Excel 8.0;HDR=YES;\";";
    else
    PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Txt_Path.Text +
    ";Extended Properties='Excel 12.0;HDR=YES;'";
    OleDbConnection conn = new OleDbConnection(PathConn);
    string Txt_Sheet = System.IO.Path.GetFileNameWithoutExtension(Txt_Pat h.Text);
    OleDbDataAdapter My_da = new OleDbDataAdapter("select * from [" + Txt_Sheet + "$]", conn);
    Dt = new DataTable();
    My_da.Fill(Dt);

    if (Dt.Columns.Count > 1)
    {
    DgvInfo.DataSource = Dt;
    DataGridViewColumn Columnlast = DgvInfo.Columns[DgvInfo.Columns.Count - 1];
    Columnlast.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    Lbl_Msg.Visible = false;
    Grp_Info.Visible = true;

    DgvInfo.Rows[0].Cells[DgvInfo.Columns.Count - 1].Selected = true;
    DgvInfo.DefaultCellStyle.Font = new Font("B Nazanin", 11);
    DgvInfo.ColumnHeadersDefaultCellStyle.Font = new Font("B Nazanin", 10);
    DgvInfo.AlternatingRowsDefaultCellStyle.Font = new Font("B Nazanin", 11);
    Cmb_Moshtari.Focus();
    }
    else
    {
    MessageBox.Show("این صفحه حاوی هیچ اطلاعاتی نمیباشد", "اخطار ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
    }
    //}
    //catch
    //{
    // MessageBox.Show("خطا در بارگذاری اطلاعات رخ داده است", "اخطار ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
    //}
    }


    //dar dokme darj dastor bank jahate darj ro benevis


    میشه بگید این چیکار میکنه؟

  27. #27
    کاربر دائمی آواتار AmiN0012
    تاریخ عضویت
    آبان 1394
    محل زندگی
    جویبار
    پست
    309

    نقل قول: سوال در مورد یک برنامه پیچیده

    اینم عکس
    ppp.png

    اول بفرست به گرید بعد درج کن همه سلول های گرید رو تو بانک

    اینم یک لینک خوب از youtube
    https://www.youtube.com/watch?v=CfNMPDJVjPI

  28. #28
    کاربر تازه وارد آواتار rozitir
    تاریخ عضویت
    اردیبهشت 1394
    پست
    79

    نقل قول: سوال در مورد یک برنامه پیچیده

    ممنون
    درج کردم حالا چطوری اطلاعات بعد از سطر یک رو بصورت ستونی به بانکم بفرستم

  29. #29
    کاربر دائمی آواتار AmiN0012
    تاریخ عضویت
    آبان 1394
    محل زندگی
    جویبار
    پست
    309

    نقل قول: سوال در مورد یک برنامه پیچیده

    باید با یه حلقه for تک تک سلول های هر سطرو درج کنی تا اخر


    private void Btn_Save_Click(object sender, EventArgs e)
    {
    for (int i = 0; i < DgvInfo.RowCount-1; i++)
    {
    string Fac_Tarikh = DgvInfo.Rows[i].Cells[1].Value.ToString();
    string Fac_sharh = DgvInfo.Rows[i].Cells[2].Value.ToString();
    string Fac_NoeFactor = DgvInfo.Rows[i].Cells[3].Value.ToString().Trim();
    string Fac_Tash1 = DgvInfo.Rows[i].Cells[4].Value.ToString();
    long Fac_Number = long.Parse(DgvInfo.Rows[i].Cells[5].Value.ToString());
    int Fac_Tedad = int.Parse(DgvInfo.Rows[i].Cells[6].Value.ToString());
    long Fac_FiVahed = long.Parse(DgvInfo.Rows[i].Cells[7].Value.ToString());
    long Fac_Bedehkar = long.Parse(DgvInfo.Rows[i].Cells[8].Value.ToString());
    long Fac_Bestankar = long.Parse(DgvInfo.Rows[i].Cells[9].Value.ToString());
    long Fac_Baghimande = long.Parse(DgvInfo.Rows[i].Cells[10].Value.ToString());
    long Fac_Remaining = long.Parse(DgvInfo.Rows[i].Cells[9].Value.ToString());
    string Fac_Tashkhis = DgvInfo.Rows[i].Cells[11].Value.ToString();
    string Fac_Moshtari = Cmb_Moshtari.SelectedValue.ToString();
    SqlCommand cmd = new SqlCommand("insert into FactorList (Fac_Tarikh,Fac_sharh,Fac_NoeFactor,Fac_Tash1,Fac_ Number,Fac_Tedad,Fac_FiVahed,Fac_Bedehkar,Fac_Best ankar,Fac_Baghimande,Fac_Tashkhis,Fac_Moshtari,Fac _Remaining) values (@Fac_Tarikh,@Fac_sharh,@Fac_NoeFactor,@Fac_Tash1, @Fac_Number,@Fac_Tedad,@Fac_FiVahed,@Fac_Bedehkar, @Fac_Bestankar,@Fac_Baghimande,@Fac_Tashkhis,@Fac_ Moshtari,@Fac_Remaining)", Mydb.conn);
    cmd.Parameters.AddWithValue("@Fac_Tarikh", Fac_Tarikh);
    cmd.Parameters.AddWithValue("@Fac_sharh", Fac_sharh);
    cmd.Parameters.AddWithValue("@Fac_NoeFactor", Fac_NoeFactor);
    cmd.Parameters.AddWithValue("@Fac_Tash1", Fac_Tash1);
    cmd.Parameters.AddWithValue("@Fac_Number", Fac_Number);
    cmd.Parameters.AddWithValue("@Fac_Tedad", Fac_Tedad);
    cmd.Parameters.AddWithValue("@Fac_FiVahed", Fac_FiVahed);
    cmd.Parameters.AddWithValue("@Fac_Bedehkar", Fac_Bedehkar);
    cmd.Parameters.AddWithValue("@Fac_Bestankar", Fac_Bestankar);
    cmd.Parameters.AddWithValue("@Fac_Baghimande", Fac_Baghimande);
    cmd.Parameters.AddWithValue("@Fac_Tashkhis", Fac_Tashkhis);
    cmd.Parameters.AddWithValue("@Fac_Moshtari", Fac_Moshtari);
    cmd.Parameters.AddWithValue("@Fac_Remaining", Fac_Remaining);
    cmd.ExecuteNonQuery();
    }
    Mydb.Close();
    MessageBox.Show("اطلاعات با موفقیت ذخیره شد", "پیغام ", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
    Form frm=new Frm_Calcute();
    frm.ShowDialog();
    }



    فیلدهای من با شما متفاوته.این فقط یه مثاله که شما باید چطور بنویسید برنامتونو.در ضمن dgvinfo اسم دیتاگرید من هست

  30. #30
    کاربر تازه وارد آواتار rozitir
    تاریخ عضویت
    اردیبهشت 1394
    پست
    79

    نقل قول: سوال در مورد یک برنامه پیچیده

    ممنون سلول عرضیه دیگه ؟؟
    چون اگه سطر رو به پایین باشه که شاید بیشتر شد

  31. #31
    کاربر دائمی آواتار AmiN0012
    تاریخ عضویت
    آبان 1394
    محل زندگی
    جویبار
    پست
    309

    نقل قول: سوال در مورد یک برنامه پیچیده

    بلع عرضیه.
    هر ردیف گرید در یک ردیف بانک درج میشه

  32. #32

    نقل قول: سوال در مورد یک برنامه پیچیده

    123www.jpg

    سلام دوست عزیز
    وقت بخیر ممنون از نمونه کدی که برای تبدیل اکسل به sql گزاشتین
    منتهی من موقع استفاده با یه مشکل برخورد کردم اونم اینکه هر کاری میکنم این خطارو میده

    ممنون میشم راهنماییم بکنید.

  33. #33

    نقل قول: سوال در مورد یک برنامه پیچیده

    با تشکر فراوان از آقای آشتیانی.
    خطای دریافتی دستمون به احتمال زیاد استفاده از / کارکتر یا هرنوع کاراکتر اختصاصیه که با جایگیزی بخش insert از :


    //کپی اطلاعات جدول انتخاب شده query = string.Empty; con.Open(); for (int ins = 0; ins < TotalRows; ins++) { query = "insert into " + TableName + " values('" + dt.Rows[ins][0]; for (int co = 1; co < TotalCols; co++) { query += "','" + dt.Rows[ins][co].ToString(); } query += "')";
    cmd.CommandText = query; cmd.ExecuteNonQuery(); } con.Close();


    به :


    //کپی اطلاعات جدول انتخاب شده query = string.Empty; con.Open(); for (int ins = 0; ins < TotalRows; ins++) {
    cmd.Parameters.Clear();
    query = "insert into " + TableName + " values( @DT0 "; for (int co = 1; co < TotalCols; co++) { query += ", @DT" + co.ToString(); } query += ")";
    cmd.CommandText = query;
    cmd.Parameters.AddWithValue("@DT0", dt.Rows[ins][0].ToString());
    for (int co = 1; co < TotalCols; co++) { cmd.Parameters.AddWithValue(("@DT" + co.ToString()), dt.Rows[ins][co].ToString()); }
    cmd.ExecuteNonQuery(); } con.Close();


    درست میشه

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

  1. انتقال اطلاعات از Excel به SQL
    نوشته شده توسط ama55555 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: یک شنبه 15 آبان 1390, 15:35 عصر
  2. ارسال اطلاعات از EXCEL به SQL با كد نويسي
    نوشته شده توسط soheil3242 در بخش SQL Server
    پاسخ: 3
    آخرین پست: دوشنبه 07 مرداد 1387, 08:06 صبح
  3. نحوه ارسال پارامتر (تصویر) به Sql Sarver
    نوشته شده توسط سیروس مقصودی در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: شنبه 11 تیر 1384, 17:15 عصر
  4. excel & sql
    نوشته شده توسط look in future1 در بخش SQL Server
    پاسخ: 1
    آخرین پست: یک شنبه 18 بهمن 1383, 10:23 صبح
  5. چگونگی ارسال عکس به بانک SQL Server
    نوشته شده توسط morteza_dehghan در بخش VB.NET
    پاسخ: 1
    آخرین پست: پنج شنبه 18 اردیبهشت 1382, 05:57 صبح

برچسب های این تاپیک

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

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