PDA

View Full Version : مشکل با اتصال به دیتابیس Pubs



jaykob
یک شنبه 10 مرداد 1389, 21:22 عصر
سلام و خسته نباشید دوستان

من می خواستم با دیتابیس pubs ارتباط برقرار کنم اما sql server 2008 نداشت این دیتابیس رو و اینکه این دیتابیس رو دانلود کردم و attach کردم با کمک لینک زیر :

http://www.codeproject.com/KB/database/InstallingNorthwindAndPub.aspx

ولی زمانی کدم رو اجرا می کنم به objConnection.open(); می رسه ایراد می گیره و می گه :

Login failed for user 'sa'.

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



public partial class Form1 : Form
{
SqlConnection objConnection = new SqlConnection(
"server=localhost;database=pubs;" +
"User ID=sa;Password=");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
// Set the SelectCommand properties...
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection =
objConnection;
objDataAdapter.SelectCommand.CommandText =
"SELECT au_lname, au_fname, title, price " +
"FROM authors " +
"JOIN titleauthor ON authors.au_id = " +
"titleauthor.au_id " +
"JOIN titles ON titleauthor.title_id = " +
"titles.title_id " +
"ORDER BY au_lname, au_fname";
objDataAdapter.SelectCommand.CommandType =
CommandType.Text;
// Open the database connection...
objConnection.Open();
// Fill the DataSet object with data...
objDataAdapter.Fill(objDataSet, "authors");
// Close the database connection...
objConnection.Close();

// Set the DataGridView properties
// to bind it to our data...
grdAuthorTitles.AutoGenerateColumns = true;
grdAuthorTitles.DataSource = objDataSet;
grdAuthorTitles.DataMember = "authors";
// Clean up
objDataAdapter = null;
objConnection = null;

}
}


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

#eafshary#
یک شنبه 10 مرداد 1389, 21:41 عصر
دوست عزیز شاید این کد کمکتون کنه :
به جای شی objConnection خودتون این رو بنویسید



sqlConnection objConnection=new sqlConnection("server=localhost;database=pubs;integrated security=true")

vandermond
یک شنبه 10 مرداد 1389, 21:59 عصر
سلام دوست عزيز
من دقيقا اين مشكل رو داشتم قبلا. (ميدونم داري كتاب آقاي هاشميان رو ميخوني:چشمک:)
از روشي كه اينجا گفتم استفاده كن مشكلت حل ميشه:
http://barnamenevis.org/forum/showpost.php?p=1048915&postcount=2
اگه نشد بگو. اينقدر با اين خطاها ور رفتم كه نميدوني.........:متفکر:

jaykob
یک شنبه 10 مرداد 1389, 23:46 عصر
دوست عزیز شاید این کد کمکتون کنه :
به جای شی objConnection خودتون این رو بنویسید



sqlConnection objConnection=new sqlConnection("server=localhost;database=pubs;integrated security=true")

سلام

ممنون دوست عزیز آره درست شد . لطفا یک شرح کامل از این تیکه کد بدید :


integrated security=true



سلام دوست عزيز
من دقيقا اين مشكل رو داشتم قبلا. (ميدونم داري كتاب آقاي هاشميان رو ميخوني:چشمک:)
از روشي كه اينجا گفتم استفاده كن مشكلت حل ميشه:
http://barnamenevis.org/forum/showpost.php?p=1048915&postcount=2
اگه نشد بگو. اينقدر با اين خطاها ور رفتم كه نميدوني.........:متفکر:

سلام دوست عزیز

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



Data Source=.\SQLEXPRESS;AttachDbFilename=G:\InstallNor thwindAndPubs_download2\PUBS.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True


اما زمانی که وارد می کنم این رو داخل sqlConnection ارور می ده ...

ممنون می شم در رابطه با این روشی که گفتید کامل توضیح بدید

vandermond
دوشنبه 11 مرداد 1389, 00:11 صبح
ببين دوست عزيز.
اين يه چيزايي رو ميده بهت. بعد اگه خاستي تغيير ميدي. مثلا اگه از SQL اكسپرس نميخاي استفاده كني. اون قسمت رو اسم SQL اي كه ميخاي رو ميزاري(اگه نصب كرده باشي؟).
قسمت Integrated Security=True رو هم اگه ميخاي با پسورد وارد بشي پاك كن و جاش User ID=sa;Password= رو بزار (البته اگه يوزر sa رو بدون پسورد تعريف كردي قبلا).
در كل بايد خودت هم يه دستي بهش بزني ولي خيلي كم و راحت.
اول مشخص كن نسخه SQL اي كه داري چي هستش و ميتوني از اونجا به ديتابيس دسترسي داشته باشي يا نه.
من خودم اون زمان اين چيزا رو نميفهميدم. اگه الان براي تو هم نامفهوم هستش بگو كه كامل تر توضيح بدم.

amir-yeketaz
دوشنبه 11 مرداد 1389, 00:44 صبح
ببين دوست عزيز.
اين يه چيزايي رو ميده بهت. بعد اگه خاستي تغيير ميدي. مثلا اگه از SQL اكسپرس نميخاي استفاده كني. اون قسمت رو اسم SQL اي كه ميخاي رو ميزاري(اگه نصب كرده باشي؟).
قسمت Integrated Security=True رو هم اگه ميخاي با پسورد وارد بشي پاك كن و جاش User ID=sa;Password= رو بزار (البته اگه يوزر sa رو بدون پسورد تعريف كردي قبلا).
در كل بايد خودت هم يه دستي بهش بزني ولي خيلي كم و راحت.
اول مشخص كن نسخه SQL اي كه داري چي هستش و ميتوني از اونجا به ديتابيس دسترسي داشته باشي يا نه.
من خودم اون زمان اين چيزا رو نميفهميدم. اگه الان براي تو هم نامفهوم هستش بگو كه كامل تر توضيح بدم.
منم خیلی خودمو سر این قضیه بیچاره کردم و اخرش هم تو همین سایت جوابشو پیدا کردم و تونستم کانکت بشم البته با همون راه و استفاده از AttachFileName ...
حالا من هم Sql Server 2000 و هم Sql Server 2005 رو سیستمم نصبه و میخوام که همون حالتی که تو کتاب آقای هاشمیان هست پیش برم ولی بازم کانکت نمیشه ؟!! مشکل از کجاست؟؟؟ باید چیکار کرد؟؟؟

vandermond
دوشنبه 11 مرداد 1389, 00:51 صبح
منم خیلی خودمو سر این قضیه بیچاره کردم و اخرش هم تو همین سایت جوابشو پیدا کردم و تونستم کانکت بشم البته با همون راه و استفاده از AttachFileName ...
حالا من هم Sql Server 2000 و هم Sql Server 2005 رو سیستمم نصبه و میخوام که همون حالتی که تو کتاب آقای هاشمیان هست پیش برم ولی بازم کانکت نمیشه ؟!! مشکل از کجاست؟؟؟ باید چیکار کرد؟؟؟
با توجه به اينكه كتاب آقاي هاشميان طرفدار زياد داره و توي اين قسمت يه كمبودهايي داره. من سعي ميكنم يك فايل آموزشي درست كنم در اين رابطه.

براي سوال شما هم اينو ميگم كه از همون روشي كه لينك دادم استفاده كنيد. اگه نشد بگيد كه دوباره جواب بدم يا فايل رو اصلا بزارم ديگه.

#eafshary#
دوشنبه 11 مرداد 1389, 10:57 صبح
[quote=Seyd_Ali;1054506]سلام

ممنون دوست عزیز آره درست شد . لطفا یک شرح کامل از این تیکه کد بدید :


integrated security=true

ببینید ما دو روش برای اتصال به SQL داریم :
1-Windows Authentication

2-SQL Authentication
که در حالت دوم باید حتما نام کاربری و پسورد را وارد کنید تا بتوانید به بانک خودتون دسترسی داشته باشید ولی در حالت اول هیچ نیازی به وارد کردن نام کاربری و پسورد نیست و مستقیما به بانک متصل می شوید. حالا شما وقتی در رشته اتصال خودتون integrated security را فعال می کنید یعنی می خواهید از طریق Windows Authentication و بدون وارد کردن نام کاربری و پسورد به بانک متصل شوید ولی اگر False باشد یعنی از طریق روش دوم می خواهید متصل شوید. امیدوارم خوب گفته باشم