PDA

View Full Version : مشکل در اتصال به sql server از برنامه روی کامپیوتر دیگه



احمد سامعی
چهارشنبه 15 شهریور 1385, 18:43 عصر
سلام
من یک برنامه برای شرکت می نویسم از اونجایی برنامه ممکن روی کاپیوتری دیگه که ما نام و مشخصاتشش رو الان نداریم بعد ها نصب بشه و در زمان اتصال به سرور باید ما نام اون رو از طریق یک string تو سرس برنامه بزاریم و در string نام کامپیوتر هم هست حالا وقتی که کامپیتر عوض می شه چطور می شه این string تغییر داد
از طرق فرستادن یک متغییر هم قبول نمی کنه ؟؟؟:گریه: :گریه: :گریه:

ghafoori
چهارشنبه 15 شهریور 1385, 21:32 عصر
خوب مقدار string رو داخل registery یا یک فایل ذخیره کن و برنامه مقدار ان را از محل ها بخواند یک قسمت هم داخل برنامت بزار که کاربر بتواند در انجا string را وارد کند سپس ان string را داخل registery یا ان فایلی که قرار است string را بخوانی قرار بده

احمد سامعی
پنج شنبه 16 شهریور 1385, 00:37 صبح
خوب مقدار string رو داخل registery یا یک فایل ذخیره کن و برنامه مقدار ان را از محل ها بخواند یک قسمت هم داخل برنامت بزار که کاربر بتواند در انجا string را وارد کند سپس ان string را داخل registery یا ان فایلی که قرار است string را بخوانی قرار بده


کل برنامه از چند فرم تشکیل شده از فرم مادر ( که یک فرم دیگه رو صدا می زنه) با استفاده از یک متغییر Public که تو فرم دوم تعریف شده از فرم اول به فرم دوم مقدار می فرستم مثلا برای ست کردن زبان پیش فرض


public string language_name;

if(language_name=="farsi")
this.form_label.Text="فرم دوم";
else
this.form_label.Text="secound Form";و همچنین برای دیگه متغیرها قبول می کنه اما در مورد connection string فقط زمانی مقدار رو قبول می کنه که قبل از فعال شدن فرم یا RUN شدنش بهش مقدار تعلق داده باشی یعنی تو سرس برنامه، مثلا اگه از روش بالا استفاده کنی قبول نمی کنه و یا از خواندن از روی فایل معمولی Text ( یک فایل ساختم و از رو اون مقدار رو خوندم تا به راحتی بشه اصلاحش کرد رو کامپیوتر دیگه ) اما باز هم خطا می ده
این هم کد اتصال به بانک:




try
{
string conString="Data Source=Computer_name;packet size=4096;Integrated Security=true;initial catalog=DataBase_name";
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString=conString;
SqlCommand myCommand=new SqlCommand();
myCommand.Connection=myConnection;
myConnection.Open();
myCommand.CommandText="SELECT fild_name FROM mytable ";
myCommand.ExecuteNonQuery();
SqlDataReader myReader=myCommand.ExecuteReader();
while(myReader.Read())
{
this.textbox1=myReader.Getstring(0);

}
myReader.Close();
myConnection.Close();
}
catch
{
if(this.language_name=="farsi")
{
MessageBox.Show("ارتباط با فایل ذخیره اطلاعات بارنامه ها مشکل دارد","خطا در ارتباط با پایگاه داده");

}
else
{
MessageBox.Show("An error occurred accessing the database !","Conn't Connection to Database !");

}
}

ghafoori
پنج شنبه 16 شهریور 1385, 09:16 صبح
اگر از 2005 استفاده می کنی از فایل setting برنامه استفاده کن با دستور


My.Settings.Context.Add("connection", "datasource=...")مقدار را اضافه کن و با دستور


My.Settings.Item("connection")در هرکجا برنامه بخوان راحترین راه است
من دقیقا منظور شما راه از این عبارت نفهمیدم

اما در مورد connection string فقط زمانی مقدار رو قبول می کنه که قبل از فعال شدن فرم یا RUN شدنش بهش مقدار تعلق داده باشی یعنی تو سرس برنامه، مثلا اگه از روش بالا استفاده کنی قبول نمی کنه و یا از خواندن از روی فایل معمولی Text ( یک فایل ساختم و از رو اون مقدار رو خوندم تا به راحتی بشه اصلاحش کرد رو کامپیوتر دیگه ) اما باز هم خطا می ده
شما در فرم اصلی مقدار connection رو از فایل می خوانی داخل یک متغییر می ریزید حالا داخل فرمهای دیگرتون یک متغییر تعریف می کنید حالا هر وقت می خواهید فرمی را نشان بدهید مقدار ان متغییر فرم را برابر متغییر connection فرم اصلی تون قرار می دهید دیگه نباید اشکال بگیرد

احمد سامعی
پنج شنبه 16 شهریور 1385, 11:48 صبح
:گریه: :گریه:
اگر از 2005 استفاده می کنی از فایل setting برنامه استفاده کن با دستور


My.Settings.Context.Add("connection", "datasource=...")مقدار را اضافه کن و با دستور


My.Settings.Item("connection")در هرکجا برنامه بخوان راحترین راه است
من دقیقا منظور شما راه از این عبارت نفهمیدم

شما در فرم اصلی مقدار connection رو از فایل می خوانی داخل یک متغییر می ریزید حالا داخل فرمهای دیگرتون یک متغییر تعریف می کنید حالا هر وقت می خواهید فرمی را نشان بدهید مقدار ان متغییر فرم را برابر متغییر connection فرم اصلی تون قرار می دهید دیگه نباید اشکال بگیرد

من از NET. 2003 استفاده می کنم
فایل settig تو فایل ها پیدانکردم
منظورم اینه که وقتی یک متغیر تعریف می کنم اگه قبل از کمپایل برنامه مقدار داده باشم قبول می کنه اما اگه زمان اجرای برنامه به اون مقدار بدم و بعد این مقدار رو تو connection string بزارم قبول نمی کنه و اتصال به بانک پیدا نمی کنه یعنی یک جورایی فقط یک ثابت می خواد نه متغیر

آیا روش دیگه ای هم برای اتصال به بانک هست که روش که بالا نوشتم نباشه؟
دارم می میرم 6 روز پیش باید برنامه رو تحویل می دادم:گریه:

afarinn62
شنبه 25 شهریور 1385, 11:30 صبح
ابتدا connection string رابا مقدار
string conString="Data Source=Computer_name;packet size=4096;Integrated Security=true;initial catalog=DataBase_name
مقدار دهی کن بعد در form_load دستور زیر را وارد کن
conection1.connectionstrin=conection1.connectionst ring.replace(computer_name,newcomputername)

احمد سامعی
جمعه 07 مهر 1385, 02:23 صبح
اگر از 2005 استفاده می کنی از فایل setting برنامه استفاده کن با دستور


My.Settings.Context.Add("connection", "datasource=...")مقدار را اضافه کن و با دستور


My.Settings.Item("connection")در هرکجا برنامه بخوان راحترین راه است


ببخشید عزیز
من 2005 نصب کردم اما همونطور که می دونید نسبت به 2003 فوق العاده پیچیده شده با فایل های خیلی زیاد...
من از این فایل setting و نحوه استفاده از اون هیچی نفهمیدم ( از کد شما هم )
من می خوام کاربر موقع نصب برنامه بر مبنای کامپوتر خودش استرینگ رو تنظیم کنه مثلا یک فرم درست کنم و اطلاعات لازم رو بگیرم و باهم ست بشه و در setting ذخیره بشه و از اون به بعد کانکت به دیتابیس به وسیله اون انجام بشه
می شه تو setup که با اینستال شید درست می شه این کار رو کرد ؟
اگه می شه کامل توضیح بدین از کدوم فایل باید استفاده کنم چجوری من تو 2005 واقعا ناشیم

once4ever
جمعه 07 مهر 1385, 10:29 صبح
تو قسمت solution فولدر Properties رو باز کن و روی settings کلیک کن
یه صفحه میاد که کار با اون راحته.
برای کانکشن درست کردن باید Type رو از نوع connection string درست کنی.
و بطور پیشفرض یه کانکشن درست میکنی.
اول برنامه ات یه try برای وصل شدن انجام میدی. اگه انجام نشد از کاربر مشخصات رو میگیری و دوباره تلاش میکنی.

احمد سامعی
جمعه 07 مهر 1385, 22:35 عصر
تو قسمت solution فولدر Properties رو باز کن و روی settings کلیک کن
یه صفحه میاد که کار با اون راحته.
برای کانکشن درست کردن باید Type رو از نوع connection string درست کنی.
و بطور پیشفرض یه کانکشن درست میکنی.
اول برنامه ات یه try برای وصل شدن انجام میدی. اگه انجام نشد از کاربر مشخصات رو میگیری و دوباره تلاش میکنی.

تا اینجا که گفتید خودم پیدا کردم اما به مقدارش تو برنامه نتونستم دسترسی پیدا کنم کد شما از MSDN هست و MY با چی عوض کنم

once4ever
جمعه 07 مهر 1385, 23:09 عصر
اگه اسم متغیر connectionstring باشه:

Properties.Settings.Default.connectionstring