PDA

View Full Version : سوال: کمک در مورد اتصال به sqlserver



hosseinenayati_2009
چهارشنبه 12 مرداد 1390, 19:45 عصر
سلام به دوستان عزیز
به من یه پروزه دادن که با سی شارپ و sql و قمست connection string را مشکل دارم
من نمیدونم باید فایل بانک را در sql2008 به صورت attach کنم یا نه توی برنامه باید attach کنم
من نحوه اتصال به بانک sql را بلد نیستم. اسم کامپیوتر من hossein , بانک من tosifi1 است.
و همچنین نمیدونم اگه تو sql بانک attach کردم تو برنامه نیاز دارم یا نه؟
تو قسمت servername (تو sql manegment ) همون را تو connection string بنویسم یا نه؟
با تشکر

Esmail Solhkhah
جمعه 14 مرداد 1390, 01:51 صبح
دوست عزیز اینکه شما دیتابیس رو با sql manegment اتچ کنید یا با کد برمیگرده به استراتژی خودتون

هر دو شدنیه

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

string connectionString = @"Data Source = hossein ; Initial Catalog = tosifi1 ;Integrated Security = SSPI;";

البته این کانکشن استرینگ برای Authentication از نوع Windows هست که برای شبکه ای که دارای Domain Controller هست

و کامپیوترهای کلاینت به اون دومین لاگین میکنن و SQL SERVER هم رو همون دومین کنترلر نصبه

انتخاب خوبیه چون بحث مدیریت لاگین های SQL رو خود ویندوز به عهده میگیره

میتونید با کانکشن استرینگ زیر در شبکه ای کار کنید که بصورت workgroup هستش

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

;Password=123456789;Persist Security Info=True;User ID=sa;Initial Catalog=tosifi1 ;Data Source=hossein

فقط دقت کنید بنده نام کاربر و پسورد sa رو تو کانکشن استرینگ گذاستم براتون مسئله امنیتی نشه

شما میتونید قسمتهای امنیتی کانکشن استرینگ رو تو یه فایل بصورت

انکریپت شده قرار بدید و تو برنامه اون فایل رو بخونید و دیکریپتش کنید.

برای اینکه شما دیتابیس رو با کد اتچ کنید هم میتونید در SQL های زیر 2005 از استور پروسیجر sp_attachtdb استفاده کنید

و برای SQL های 2005 و به بالا از دستور Create DataBase dbname For Attacht استفاده کنید

دقت کنید sp_attachtdb در 2005 به بالا ساپورت نمیشه و دیتابیس رو بصورت ReadOnly اتچ میکنه

موفق باشید.

nazanin69
جمعه 14 مرداد 1390, 12:50 عصر
سلام ما با sql رابطه برقرار کردم و اطلاعات جدولمو ریختم تو یه dataset ، وقتی می خام چاپ کنم تو یه datagrid چاپ می کنم ولی من می خام نام ستون هام فارسی باشه یعنی می خام نام ستون هامو عوض کنم ... ببنید خودم ستونهارو ایجاد نمی کنم که خودم فارسی تایپ کنم بلکه نام ستونهایی که تو sql نوشتم تو datagrid نوشته می شه و در زیر اون اطلاعات اون ستون !!!!!

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

akarsu
جمعه 14 مرداد 1390, 14:06 عصر
سلام ما با sql رابطه برقرار کردم و اطلاعات جدولمو ریختم تو یه dataset ، وقتی می خام چاپ کنم تو یه datagrid چاپ می کنم ولی من می خام نام ستون هام فارسی باشه و ...
SqlConnection con1 = new SqlConnection();
con1.ConnectionString = str1;
SqlDataAdapter sda5 = new SqlDataAdapter("select name,price,tedade from detail", con1);
DataSet ds5 = new DataSet();
ds5.Clear();
sda5.Fill(ds5, "detail");
dataGridView1.DataSource = ds5.Tables[0];
dataGridView1.Columns[0].HeaderText = "نـام ";
dataGridView1.Columns[1].HeaderText = "قیمت ";
dataGridView1.Columns[2].HeaderText = "تـعـداد ";

nazanin69
جمعه 14 مرداد 1390, 16:10 عصر
سلام مرسی از راهنماییت دوست عزیز

یه سوال دیگه
من دارم تو یه for اطلاعاتمو تو datagridview چاپ می کنم ولی رو هم چاپ میشه یعنی شماره سطر تغییر نمی کنه که اطلاعات بره سطر بعد !!!!!!!

چطوری شماره سطر datagridview رو تغییر بدم ؟؟؟؟؟؟؟؟؟؟؟؟؟

akarsu
جمعه 14 مرداد 1390, 16:20 عصر
اگه میشه کدی که استفاده میکنی رو بنویس تا مشکلش رو حل کنیم

nazanin69
جمعه 14 مرداد 1390, 19:28 عصر
( foreach(DataRow dr in ds.Tables["info"].Rows){

dataGridView1.CurrentRow.Cells[4].Value =dr["economySpace"];
dataGridView1.CurrentRow.Cells[3].Value = dr["groupPlace"];
dataGridView1.CurrentRow.Cells[2].Value = dr["economyTimePower"];
dataGridView1.CurrentRow.Cells[1].Value = dr["economytime"];
dataGridView1.CurrentRow.Cells[0].Value = dr["explanation"];

{

nazanin69
جمعه 14 مرداد 1390, 20:34 عصر
من میخام شماره currentRow رو تغییر بدم تو datagridview وای خدا هر کار می کنم نمیشه

یعنی هیچ کس نمیدونه !!!!!!!!!!!!!!!!!!!!!!!!!!!

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

faravaghi
جمعه 14 مرداد 1390, 22:50 عصر
من ميخام شماره currentRow رو تغيير بدم تو datagridview واي خدا هر کار مي کنم نميشه

يعني هيچ کس نميدونه !!!!!!!!!!!!!!!!!!!!!!!!!!!

datagridview من فقط يه خط داره اطلاعات رو هم چاپ مي شه !!!!!!!!!!!!!!!!!!!!!!!!!!!! با اينکه تو يه for هست

دوست عزيز سلام،
چرا خودتو اذيت ميکني!!
شما کاري که داري مي کني اينه که، مياي تو سطر جاري اطلاعات رو ميريزي. آيا شده مثلا تو يه حلقه بياي يه پارامتر اوليه تعريف کني بعد بدون اينکه اون رو تغيير بدي هي ازش استفاده کني بعد انتظار داشته باشي خودش تغيير کنه!!
for( int i=0 ; i < 10 ; )
a[i] = b;

آيا همچين چيزي ديدي؟
شما دقيقا داري همين کارو انجام ميدي!!!
درصورتي که بايد اين جوري باشه(اگه دارید تازه DataGridView رو پر می کنید):

foreach(DataRow dr in ds.Tables["info"].Rows)
{
string[] Str = new string[] {
dr["economySpace"]
, dr["groupPlace"]
, dr["economyTimePower"]
, dr["economytime"]
, dr["explanation"]};

dataGridView1.Rows.Add(Str);
}

در غیر این صورت بهتره از این روش استفاده کنید:

int i = 0;
foreach(DataRow dr in ds.Tables["info"].Rows)
{
dataGridView1.Rows[i].Cells[4].Value =dr["economySpace"];
dataGridView1.Rows[i].Cells[3].Value = dr["groupPlace"];
dataGridView1.Rows[i].Cells[2].Value = dr["economyTimePower"];
dataGridView1.Rows[i].Cells[1].Value = dr["economytime"];
dataGridView1.Rows[i].Cells[0].Value = dr["explanation"];
i++;
}