PDA

View Full Version : مبتدی: متغییر عمومی برای کانکشن استرینگ



mojtaba_kz
پنج شنبه 19 مرداد 1391, 00:49 صبح
سلام علیکم؛

چگونه می شود برای همه فرم های یک کانکش استرینگ عمومی تعریف کرد

تا در هر فرم با صدا زدن نام متغیر cnn معتبر باشد...

این کانکش در چه قسمتی باید نوشته شود ؟


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



SqlConnection


cnn = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=anbarDB;Integrated Security=True;Pooling=False");

mmd2009
پنج شنبه 19 مرداد 1391, 01:00 صبح
با سلام

بهترین روشی که توصیه شده استفاده از یک فایل app.config هست. کافیه اونجا بذارید و هرجایی که خواستید ازش استفاده بکنید. برای امنیت کار هم میتونید از Encrypt and Decrypt استفاده بکنید.

فرضا اگر این کانکشتن استرینگ ما در فایل app.config باشه :


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="Test" connectionString="Data Source=.;Initial Catalog=MyConnection;IntegratedSecurity=True" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>


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


var connection = System.Configuration.ConfigurationManager.Connecti onStrings["Test"];


لازم به ذکر هست که رفرنسس System.Configuration رو هم باید اضافه بکنید

موفق باشید

mohammad.ardeshiri
پنج شنبه 19 مرداد 1391, 01:03 صبح
اگه با کلاس بنویسی میتونی اینکارو کنی

Y_Safaiee
پنج شنبه 19 مرداد 1391, 01:05 صبح
سلام دوست من

کار راحتیه Program.cs رو باز کن و بعد از Using کتابخانه SqlClient یه متغیر کانکشن به صورت زیر بساز :



using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Create
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form1());
}
public static SqlConnection cnn = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=anbarDB;Integrated Security=True;Pooling=False");

}
}


خوب حالا هر فرم که نیاز بهش داشتی لازمه فقط بهش اشاره کنی مثلا اینطوری :


private void Form1_Load(object sender, EventArgs e)
{

SqlCommand cmd = new SqlCommand("select * from list", Program.cnn);
}


یا راه مبتدی ترش :


private void Form1_Load(object sender, EventArgs e)
{

Program.cnn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = Program.cnn;
cmd.CommandText = "select * from list";
//ادامه کدها
}


البته به نظر من یه کلاس بنویس و کل کارهاتو داخل اون بنویس بعد مثلا دیتاگرید با دستور sql رو برای تابع تو کلاست بفرست و اون دیتاگریدت رو با مقادیر پر کنه,1 بار کد تو کلاس نوشتی تو همه فرمهات میشه ازش استفاده کرد.

موفق باشی
بایت بایت

hosseinenayati_2009
جمعه 20 مرداد 1391, 02:14 صبح
سلام ساده ترین راه و کار آمد ترین راه اینکه که شما تو اولین فرم تون که ظاهر میشه زیر قسمت public partial class login : Form (اسم فرم من login است ) خط کد زیر را بنویسید. اینکار باعث میشه یه متغییر عمومی تو کل برنامه باشه و هر موقع خواستید ابتدا اسم فرم و بعدا متغییر عمومی را بنویسید(اینطوری login.con).
public static OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb");
یه چیز دیگه هم اینکه بانک من داخل فایل debug است و احتیاج به آدرس دهی بانک نداره اینکار باعث میشه که شما هر جایی که بانک و برنامه باشه خطایی صورت نگیره