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

نام تاپیک: اضافه کردن یوزرهای mysql به sql server

  1. #1
    کاربر تازه وارد آواتار Sp|R|T
    تاریخ عضویت
    اردیبهشت 1390
    پست
    72

    اضافه کردن یوزرهای mysql به sql server

    سلام

    من یه برنامه چت راه اندازی کردم که هم راه با سیستم ثبت نام هستش

    همه چی درس کار میکنه و حالا میخوام اگر کسی از طریق سایتم که از mysql استفاده میکنه ثبت نام کنه بصورت خودکار این یوزر داخل sql server برنامم اضافه بشه

    این کار رو بصورت برعکسش انجام دادم یعنی اگر کسی از طریق برنامه ثبت نام کنه توی هر دو دیتابیس ( mysql و sql server ) یوزر اضافه میشه

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

    فقط یه کد میخوام خودش توی تیبل users بگرده و ببینه که اگر یوزر جدیدی اضافه شده ، این یوزر به sql serer اضافه بشه

    تشکر

  2. #2
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    نحوه کار مثل کار با MS SQL SERVER‌هست و فرقی نمی کنه. (البته با شیوه ADO .NET)
    کافیه library رایگان mysql واسه دات نت رو به رفرنس های برنامتون اضافه کنید و بعد بقیه مراحل مانند کار با ms sql server هست. مثلا به جای کلاس SqlConnection این بار MySqlConnection خواهید داشت.
    مثال:
    http://bitdaddys.com/MySQL-ConnectorNet.html

  3. #3
    کاربر تازه وارد آواتار Sp|R|T
    تاریخ عضویت
    اردیبهشت 1390
    پست
    72

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    نقل قول نوشته شده توسط Amir Oveisi مشاهده تاپیک
    نحوه کار مثل کار با MS SQL SERVER‌هست و فرقی نمی کنه. (البته با شیوه ADO .NET)
    کافیه library رایگان mysql واسه دات نت رو به رفرنس های برنامتون اضافه کنید و بعد بقیه مراحل مانند کار با ms sql server هست. مثلا به جای کلاس SqlConnection این بار MySqlConnection خواهید داشت.
    مثال:
    http://bitdaddys.com/MySQL-ConnectorNet.html
    تشکر بابت جوابتون

    ولی من مشکلم یه چیزه دیگس

    من کلآ با نحوه fill کردن تیبل ها و insert / delete / select و و و این ها همش آشنا هستم

    من مشکلم اینه که نمیتونم به سایتم(php) بگم که یوزر جدیدی که از طریق خوده سایت ساخته میشه، یوزر رو هم توی دیتابیس خودت که از mysql استفاده میکنه ذخیره کنه و هم توی دیتابیس برنامه که از sql server استفاده میکنه ذخیره !

    در صورتی که من به برنامم گفتم که یوزی که از طریق خوده برنامه ساخته میشه هم توی mysql ذخیره بشه و هم توی sql server ! و در این بابت هیچ مشکلی ندارم

    خب حالا برای این کار من باید یه کدی داخل سی شارپم قرار بدم که خودش توی دیتابیس سایتم(mysql) بگرده و یوزرها رو چک و ببینه اگر یوزری وجود داره که در sql server نیستش، این یوزر رو به sql server اضافه کنه

  4. #4
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    خوب برای این کار یک روش مناسب این هست که یک web service بنویسید و اون رو روی سایت قرار بدید بعد یک وب رفرنس ازش به رفرنس های برنامتون اضافه کنید. داخل وب سرویس یک متد بنویسید که از داخل دیتابیس mysql سایت (که برای وب سرویس local حساب میشه چون خودشم رو سرور هست) user ها رو در بیاره و برگردونه. در داخل برنامتون هر جا لازم داشتید از طریق وب رفرنسی که دارید اون متد رو فراخوانی می کنید و از مقدار برگشت داده شده (که مثلا لیستی از user ها هست) استفاده می کنید.
    روش دیگه برای اینکار ارتباط مستقیم با دیتابیس روی سایت با استفاده از connection string‌ هست. یعنی کاملا مثل دیتابیس local‌ باهاش رفتار میکنید و فقط connection string‌اتون شما رو به دیتابیس سایت متصل می کنه.
    اما امنیت روش اول خیلی بهتره.

  5. #5
    کاربر تازه وارد آواتار Sp|R|T
    تاریخ عضویت
    اردیبهشت 1390
    پست
    72

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    تشکر مدیر،

    من از نظر امنیت اومدم این کار رو انجام دادم که کلاینت به سرور متصل و سرور یه دیتابیس وصل میشه
    در واقع کلاینت هیچ دسترسی به دیتابیس نداره! و فقط سرور ارتباط مستقیم با دیتابیس ها داره ! که از connection string هم استفاده کردم

    خب الان ارتباط مستقیم هستش؛ چطور میتونم یوزرهای جدید داخل mysql رو به sql server اضافه کنم ؟

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

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

    مقدار اولین داده در تیبل users در mysql رو داخل یک آرایه قرار میداد و سپس این آرایه توسط کد addwithvalue مقدار اولین داده (یعنی مثلا اولین یوزری که ساخته شده) به sql server اضافه میکردم

    خب مشکل اینجاست که دیگر یوزر ها رو اضافه نمیکنه

    تا این قسمتش جلو رفتم، بنظرتون باید چیکار کنم ؟

  6. #6
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    خوب شما مگه تو جدول users اطلاعات کاربرها رو نگهداری نمی کنید؟
    کلیه رکورد های users‌رو select کنید و جواب query‌رو با datareader‌ بخونید و بعد به هر شکلی که خواستید داخل دیتابیس دوم ذخیره کنید.
    من منظور شما رو از اولین داده متوجه نشدم

  7. #7
    کاربر تازه وارد آواتار Sp|R|T
    تاریخ عضویت
    اردیبهشت 1390
    پست
    72

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    من الان این برنامه رو ساختم:




    وقتی روی دکمه <=== کلیک میکنم یوزر اضافه میشه و هیچ میشکلی نداره




    ولی من میخوام این کار بصورت خودکار انجام بشه( بدون کلیک کردن روی دکمه)

    فقط مشکلم همینه

    این هم کد:
    //برای پر کردن داخل تکست باکس ها (sql server)
    void FillData() {
    SqlConnection Conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ServerDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    SqlDataAdapter da = new SqlDataAdapter("Select UserName, UName, UEmail, Password From Users", Conn);
    DataSet ds = new DataSet();
    da.Fill(ds, "t1");
    dataGridView1.DataSource = ds;
    dataGridView1.DataMember = "t1";
    txbNickName.DataBindings.Clear();
    txbEmail.DataBindings.Clear();
    txbPassword.DataBindings.Clear();
    txbName.DataBindings.Clear();
    txbNickName.DataBindings.Add("Text", ds, "t1.username");
    txbEmail.DataBindings.Add("Text", ds, "t1.UEmail");
    txbPassword.DataBindings.Add("Text", ds, "t1.Password");
    txbName.DataBindings.Add("Text", ds, "t1.UName"); }
    //برای پر کردن داخل تکست باکس ها
    (MYSQL) void FillData2() {
    MySqlConnection Conn2 = new MySqlConnection(@"Server=127.0.0.1;Port=3306;Datab ase=test;User ID=root;Password=;CharSet=utf8");
    MySqlDataAdapter da = new MySqlDataAdapter("Select username , fullname , email , password From users", Conn2);
    DataSet ds = new DataSet();
    da.Fill(ds, "t1");
    dataGridView2.DataSource = ds;
    dataGridView2.DataMember = "t1";
    txbNickName2.DataBindings.Clear();
    txbEmail2.DataBindings.Clear();
    txbName2.DataBindings.Clear();
    txbPassword2.DataBindings.Clear();
    txbNickName2.DataBindings.Add("Text", ds, "t1.username");
    txbEmail2.DataBindings.Add("Text", ds, "t1.email");
    txbName2.DataBindings.Add("Text", ds, "t1.fullname");
    txbPassword2.DataBindings.Add("Text", ds, "t1.password"); }
    //insert '===>'
    private void insert_Click(object sender, EventArgs e)
    {
    SqlConnection Conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ServerDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    SqlCommand Cmd = new SqlCommand(@"Insert Into Users (UserName, Password, UName, UEmail) Values (@UserName, @Password, @UName, @UEmail)", Conn);
    Cmd.Parameters.AddWithValue("@UserName", txbNickName2.Text);
    Cmd.Parameters.AddWithValue("@Password", txbPassword2.Text);
    Cmd.Parameters.AddWithValue("@UName", txbName2.Text);
    Cmd.Parameters.AddWithValue("@UEmail", txbEmail2.Text);
    if (Conn.State == ConnectionState.Closed)
    {
    Conn.Open(); } try { Cmd.ExecuteNonQuery();
    FillData();
    } catch { }
    }
    آخرین ویرایش به وسیله Amir Oveisi : سه شنبه 01 آذر 1390 در 16:04 عصر دلیل: کد ها را داخل تگ #C قرار دهید

  8. #8

  9. #9
    کاربر تازه وارد آواتار Sp|R|T
    تاریخ عضویت
    اردیبهشت 1390
    پست
    72

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    نقل قول نوشته شده توسط Amir Oveisi مشاهده تاپیک
    الان با یک کلیک همه کاربر ها اضافه میشن؟
    خیر!
    اگر شما دقت کرده باشین من مقدار هایی که داخل تکست باکس ها رو نشون میده رو اینسترت کردم

    یعنی اول روی دیتاگریدویو کلیک میکنم ، بعد یوزری که روش کلیک کردم رو در تکست باکس ها نشون داد سپس روی دکمه کلیک میکنم و اینسرت میشه

    که فایده ای نداره... :-s

  10. #10
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    آها! حالا تازه فهمیدم مشکل چیه! (چقدر با چیزی که تو پست اول فکر می کردم فرق داشت lol‌ )
    ولی باز هم جواب قبلی که دادم میشه راه حل شما. کار خاصی نیاز نیست انجام بدید.
    یک query بنویسید که کلیه user ها رو از table‌به نام users در دیتابیس mysql بخونه. بعد یه command بسازید برای این query و اونو executeReader کنید. با این کار کل user ها رو میتونید دریافت کنید از دیتابیس mysql.
    حالا که اطلاعات user ها رو دارید داخل شی sqlDataReader کافیه تک تک اونا رو مثلا با یک حلقه به دیتابیس ms sql اتون insert‌ کنید.

    برای کل این کار یک متد بنویسد و هر جا که نیاز داشتید فراخوانیش کنید.

  11. #11
    کاربر تازه وارد آواتار Sp|R|T
    تاریخ عضویت
    اردیبهشت 1390
    پست
    72

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    نقل قول نوشته شده توسط Amir Oveisi مشاهده تاپیک
    آها! حالا تازه فهمیدم مشکل چیه! (چقدر با چیزی که تو پست اول فکر می کردم فرق داشت lol‌ )
    ولی باز هم جواب قبلی که دادم میشه راه حل شما. کار خاصی نیاز نیست انجام بدید.
    یک query بنویسید که کلیه user ها رو از table‌به نام users در دیتابیس mysql بخونه. بعد یه command بسازید برای این query و اونو executeReader کنید. با این کار کل user ها رو میتونید دریافت کنید از دیتابیس mysql.
    حالا که اطلاعات user ها رو دارید داخل شی sqlDataReader کافیه تک تک اونا رو مثلا با یک حلقه به دیتابیس ms sql اتون insert‌ کنید.

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

    شرمنده

  12. #12
    کاربر تازه وارد آواتار Sp|R|T
    تاریخ عضویت
    اردیبهشت 1390
    پست
    72

    نقل قول: اضافه کردن یوزرهای mysql به sql server

    تشکر امیر خان

    تونستم انجامش بدم

    این کد:

            private void button3_Click(object sender, EventArgs e)
    {
    MySqlConnection Conn = new MySqlConnection(@"Server=127.0.0.1;Port=3306;Datab ase=test;User ID=root;Password=;CharSet=utf8");

    Conn.Open();

    MySqlCommand command = new MySqlCommand("Select username , fullname , email , password From users", Conn);
    MySqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {

    SqlConnection Conn2 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ServerDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    SqlCommand Cmd = new SqlCommand(@"Insert Into Users (UserName, Password, UName, UEmail, SecurityQuestion, Answer) Values
    (@UserName, @Password, @UName, @UEmail, 'sec', 'ans')", Conn2);

    Cmd.Parameters.AddWithValue("@UserName", reader.GetString(0));
    Cmd.Parameters.AddWithValue("@UName", reader.GetString(1));
    Cmd.Parameters.AddWithValue("@UEmail", reader.GetString(2));
    Cmd.Parameters.AddWithValue("@Password", reader.GetString(3));

    if (Conn2.State == ConnectionState.Closed)
    {
    Conn2.Open();
    }
    try
    {
    Cmd.ExecuteNonQuery();
    FillData();
    Conn2.Close();
    }
    catch
    {

    }
    }

    Conn.Close();
    }


    خب الان من اینو روی یک دکمه گذاشتم

    توی یک تایمیر قرار بدم ؟ بگم هر یک دیقه یه بار این کد اجرا بشه ؟ دیتابیس .... سی پی یو .... رم ... چیزیش نمیشه ؟

    نمیشه اتوماتیک یه کاری کرد تا یه یوزر توی MySQL اضافه توی اون دیتابیس دیگه هم اضافه بشه ؟

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

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