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

نام تاپیک: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    ایران عزیز
    پست
    356

    عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    سلام دوستان؛
    من برای ارتباط با sql اومدم و یه کلاس درست کردم.
    حالا در متن برنامه وقتی که اون کلاس رو فراخوانیش می کنم ، قادر به دستیابی به connection string من نیست.
    میشه کمک کنید.
    خط مورد نظر رو که نمیشنامه براتون مشخص کردم.
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Data.Sql;
    namespace WindowsFormsApplication6
    {

    public partial class Form1 : Form
    {
    public void Connect()
    {
    SqlConnection cnn = new SqlConnection();
    cnn.ConnectionString = (@"Data Source=sh\STAR;Initial Catalog=test;Integrated Security=True");
    }

    public Form1()
    {
    InitializeComponent();

    }
    private void button1_Click(object sender, EventArgs e)
    {
    Connect();
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "select * from person";
    this line:==> cmd.Connection = cnn;

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
    }
    }

  2. #2
    کاربر دائمی آواتار Directx
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    نامعلوم
    پست
    243

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    دوست عزیز شما cnn رو داخل یه تابع تعریف کردین یعنی یه متغیره لوکاله و بیرون از تابع دیگه قابل دسترسی نیست و تابع که تموم می شه منابع تخصیص داده شده بهش توسط garbage collection ازاد می شه اگه می خوایید تو کل کلاس استفاده کنید اونو بیرون از تابع تعریف کنید.

  3. #3

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    direct X کاملا درست میگه
    منم یک پیشنهاد داشتم
    کلا برای کارای DB یک کلاس بساز و از اون استفاده کن

  4. #4
    کاربر دائمی آواتار farsoft
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    163

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    این شکلی تعریف کن


    public partial class Form1 : Form
    {
    SqlConnection cnn = new SqlConnection();

    public void Connect()
    {
    cnn.ConnectionString = (@"Data Source=sh\STAR;Initial Catalog=test;Integrated Security=True");
    }

    public Form1()
    {
    InitializeComponent();

    }
    private void button1_Click(object sender, EventArgs e)
    {
    Connect();
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "select * from person";
    cmd.Connection = cnn;

    }

  5. #5
    کاربر تازه وارد آواتار ali.asady
    تاریخ عضویت
    تیر 1385
    محل زندگی
    مسجدسلیمان
    پست
    84

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    چرا اون رو داخل Settings برنامه ات ذخیره نمی کنی بصورت یک فایل ایکس ام ال
    که هرجا خواستی اون را تغییر بدی اگه خواستی راهش رو برات می نویسم

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    ایران عزیز
    پست
    356

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    دوست عزیز شما cnn رو داخل یه تابع تعریف کردین یعنی یه متغیره لوکاله و بیرون از تابع دیگه قابل دسترسی نیست و تابع که تموم می شه منابع تخصیص داده شده بهش توسط garbage collection ازاد می شه اگه می خوایید تو کل کلاس استفاده کنید اونو بیرون از تابع تعریف کنید.
    اولا از شما مجددا تشکر می کنم؛
    خب ببین دوست عزیز من طبق این شکل اومدم و تعریف کردم؛ ولی جواب نداد! آیا منظورتون همینجوریه؟

    ضمنا وقتی که تابع رو Public تعریفش کردم باید بتونم از جاهای دیگه توی همون کلاس بهش دسترسی پیدا کنم! اینجوری نیست مگه؟ دارم اشتباه می کنم؟؟
    ضمنا چرا روش دوستمون farsoft داره جواب میده؟؟
    منم تقریبا مشابه ایشون کار کردم.
    منم یک پیشنهاد داشتم
    کلا برای کارای DB یک کلاس بساز و از اون استفاده کن
    آره منم با نظر شما کاملا موافقم ، فقط یه سوال داشتم، برای اینکه کد استاندارد باشه چه مواردی رو باید توی این کلاس بذارم؟؟ ممنون میشم اگه یه نمونه کد یا یه توضیح کوچیکی تو این زمینه بدید.
    چرا اون رو داخل Settings برنامه ات ذخیره نمی کنی بصورت یک فایل ایکس ام ال
    که هرجا خواستی اون را تغییر بدی اگه خواستی راهش رو برات می نویسم
    معلومه که خوبه عزیزم. نیکی و پرسش؟
    لطفا راهش رو برام بذار.
    ممنونم از همه دوستان.

  7. #7
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    پیشنهاد می کنم قبل از هر کاری بپردازید به مفاهیم Object oriented و حتما حتما این مفاهیمو خوب یاد بگیرید وگرنه همه جا گیر می کنید. می تونید به آموزشی که من درهمین سایت گذاشتم مراجعه کنید.
    در کد شما مشکلی که وجود دارد اینه که فرق فیلد در یک کلاس و متغیر محلی در یک متد رو متوجه نشدید در ضمن هیچ وقت یک کلاس بالای کلاس فرم تعریف نکنید چون Designer نمی تونه فرم رو Load کنه

  8. #8
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    در ضمن Setting به نظر نمی رسه که جای خوبی برای ذخیره Connection string باشه چون Setting بیشتر برای ذخیره state فرم و یا مقادیری که می خواهیم هنگام خروج برنامه ذخیره کنیم تا در اجرای دوباره این مقدار را داشته باشیم ، استفاده می شود.
    در عوض می شه از App.Config استفاده کرد چرا که امکان Encrypt رو هم می ده. اگه از ویزارد Visual Studio برای ارتباط با DataBase استفاده کنید می تونید ببنینید که Connection String چطوری در App.Config ذخیره می شه

  9. #9
    کاربر دائمی آواتار hashemi85sep
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    فارس - لامرد
    سن
    35
    پست
    351

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    نقل قول نوشته شده توسط ali.asady مشاهده تاپیک
    چرا اون رو داخل Settings برنامه ات ذخیره نمی کنی بصورت یک فایل ایکس ام ال
    که هرجا خواستی اون را تغییر بدی اگه خواستی راهش رو برات می نویسم
    سلام دوست عزیز
    میشه لطفا توضیح بدین؟

  10. #10
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    ایران عزیز
    پست
    356

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    در ضمن Setting به نظر نمی رسه که جای خوبی برای ذخیره Connection string باشه چون Setting بیشتر برای ذخیره state فرم و یا مقادیری که می خواهیم هنگام خروج برنامه ذخیره کنیم تا در اجرای دوباره این مقدار را داشته باشیم ، استفاده می شود.
    ببخشید منظورتون از setting همون string هستش؟
    اگه منظورتون همینه پس چرا اکثرا از همین روال استفاده می کنن؟
    یعنی درست نیست اینجوری؟
    ازتون متشکرم

  11. #11
    VIP آواتار gwbasic
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    42
    پست
    982

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    منظور از Setting یکی از آیتمهایی که به پروژه می توان اضافه کرد Setting File هست
    آخرین ویرایش به وسیله gwbasic : شنبه 21 خرداد 1390 در 13:10 عصر

  12. #12
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    ایران عزیز
    پست
    356

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    ولی من از setting استفاده نکردم که!

  13. #13

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    سلام
    اول اینکه شما کلاسی تعریف نکرده اید بلکه یک متد ایجاد کرده اید. کلاس مادر Form1 است شما باید متغیر های cnn ، cmd را در قلمرو کلاس Form1 تعریف کنید تا توسط تمام متدهای درون کلاس Form1 قابل دستیابی باشد. سپس در متد Connect تمام آنچه که برای اتصال نیاز است را بنویسید.

  14. #14

    نقل قول: عدم شناسایی connection string ایجاد شده در یک کلاس مجزا جهت ارتباط

    این یه کلاس کامل برای کار با دیتا بیس Access ...تبدیلش به SQL هم با خودت ...
    نحوه استفاده ش هم به این شکله :
    namespace Exlord.VC.DB.Model
    {
    public class BaseDAL : BaseAcc
    {
    public BaseDAL()
    {
    OleDbConnectionStringBuilder oc = new OleDbConnectionStringBuilder();
    oc.Provider = "Microsoft.ACE.OLEDB.12.0";
    oc.DataSource = Application.StartupPath + "\\DB\\VCDB.accdb";
    oc.PersistSecurityInfo = true;
    oc.Add("Jet OLEDB:Database Password", "*********");

    this.ConnectionString = oc.ConnectionString;
    }
    }
    }


    حالا میتونی از این کلاس BaseDAL یا نمونه سازی کنی یا تو یه کلای DAL دیگه ازش ارث بری کنی برای انجام query ها ...
    فایل های ضمیمه فایل های ضمیمه

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

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