PDA

View Full Version : آموزش: سوالهای مربوط به تاپیک آموزش برنامه نویسی پایگاه داده به همراه مثالهای کاربردی



Arash_janusV3
سه شنبه 30 خرداد 1391, 12:37 عصر
کاربرانی که تاپیک
آموزش برنامه نویسی پایگاه داده به همراه مثالهای کاربردی (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C)[/URL]
را مشاهده کرده اند و سوالاتی مربوط به آنچه که در آموزش برنامه نویسی پایگاه داده به همراه مثالهای کاربردی (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C) (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C) مطرح شده دارند
می توانند در اینجا مطرح کنند
با این وجود به کاربران کمک خوبی می شود واز همه دوستان خواهشمندم در این تاپیک تا آنجایی که از دستشان بر می آید همکاری کنند

لطفا سوالاتی در اینجا مطرح شود که به آنچه که در [URL="http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C"]آموزش برنامه نویسی پایگاه داده به همراه مثالهای کاربردی (http://barnamenevis.org/showthread.php?346060-%D9%86%DA%A9%D8%AA%D9%87-%D9%87%D8%A7%DB%8C-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-...) مطرح شده ارتباط داشته باشد

amirxbest
سه شنبه 30 خرداد 1391, 14:18 عصر
با عرض سلام خدمت شما دوست عزیز و محترم بابت این پست واقعا کاربردی...
من مشکلم اینه که نمیتونم با user , password به sql server 2008 متصل بشم به طور پیشفرض و از طریق windows Authentication مشکلی ندارم و لی با user , password نمیتونم وقتی هم user میسازم در داخل برنامه هم نمیتونم login کنم.مشکل کجاست؟؟؟ آیا تنظیماتی در sql server 2008 لازم هست؟؟؟

در ضمن فکر کنم یه اشتباه کوچولو کردید اول گفتین یه بانک به اسم Sample بسازیم ولی بعد تو connection string نام بانک رو SampleDB وارد کردین....

Arash_janusV3
سه شنبه 30 خرداد 1391, 14:23 عصر
با عرض سلام خدمت شما دوست عزیز و محترم بابت این پست واقعا کاربردی...
من مشکلم اینه که نمیتونم با user , password به sql server 2008 متصل بشم به طور پیشفرض و از طریق windows Authentication مشکلی ندارم و لی با user , password نمیتونم وقتی هم user میسازم در داخل برنامه هم نمیتونم login کنم.مشکل کجاست؟؟؟ آیا تنظیماتی در sql server 2008 لازم هست؟؟؟

در ضمن فکر کنم یه اشتباه کوچولو کردید اول گفتین یه بانک به اسم Sample بسازیم ولی بعد تو connection string نام بانک رو SampleDB وارد کردین....

آیا در سیستم شما sql 2005 هم وجود دارد؟

amirxbest
سه شنبه 30 خرداد 1391, 14:27 عصر
نه فقط 2008 نصبه.یعنی من اول ویژال استدیو 2010 رو کامل نصب میکنم (sql server 2008) هم باهاش نصب میشه بعدم جداگانه میام sql managment 2008 رو نصب میکنم که بتونم از طریق sql managment 2008 بانک رو طراحی کنم و ...
آیا نحوه کار من اشتباه است؟؟؟

Arash_janusV3
سه شنبه 30 خرداد 1391, 14:34 عصر
آیا نحوه کار من اشتباه است؟؟؟
فکر نمی کنم ارتباطی داشته باشه
sql 2008 R2 هستش؟

amirxbest
سه شنبه 30 خرداد 1391, 14:38 عصر
تو about اینا نوشته بود:
Microsoft SQL Server Management Studio 10.0.1600.22 ((SQL_PreRelease).080709-1414 )
Microsoft Data Access Components (MDAC) 6.1.7601.17514 (win7sp1_rtm.101119-1850)
Microsoft MSXML 3.0 5.0 6.0
Microsoft Internet Explorer 8.0.7601.17514
Microsoft .NET Framework 2.0.50727.5420
Operating System 6.1.7601
از کجا بفهمم sql 2008 R2 هستش؟

amirxbest
سه شنبه 30 خرداد 1391, 14:43 عصر
خیلی وقته این مشکل رو دارم فکر میکنم مشکل از روش نصب یا تنظیماتی هست که انجام ندادم.هرکی مشکل ما رو حل کنه انگار زیارت حج کرده:گریه::گریه::گریه::چشمک:

Arash_janusV3
سه شنبه 30 خرداد 1391, 14:43 عصر
از کجا بفهمم sql 2008 R2 هستش؟
وقتی sql را اجرا می کنید و در بالای login

88460

amirxbest
سه شنبه 30 خرداد 1391, 14:53 عصر
نه مال من آخرش R2 نداره فقط نوشته Sql server 2008 مشکل از اینه به نظرتون؟؟؟

amirxbest
سه شنبه 30 خرداد 1391, 14:57 عصر
اگه بخوام اینی که شما گفتین نصب کنم از بین این 2 گزینه کدوم رو باید نصب کنم:
88461

hashemi85sep
سه شنبه 30 خرداد 1391, 16:43 عصر
سلام دوست عزیز
نسخه Enterprise رو نصب کن

amirxbest
سه شنبه 30 خرداد 1391, 20:33 عصر
دوستان یه سوال ساده؟؟؟
شما اول sql server 2008 r2 رو نصب میکنید بعد ویژال استدیو یا بر عکس؟
یا اصلا فرقی نداره؟؟؟

sirvan-me
سه شنبه 30 خرداد 1391, 21:09 عصر
با عرض سلام خدمت شما دوست عزیز و محترم بابت این پست واقعا کاربردی...
من مشکلم اینه که نمیتونم با user , password به sql server 2008 متصل بشم به طور پیشفرض و از طریق windows Authentication مشکلی ندارم و لی با user , password نمیتونم وقتی هم user میسازم در داخل برنامه هم نمیتونم login کنم.مشکل کجاست؟؟؟ آیا تنظیماتی در sql server 2008 لازم هست؟؟؟

در ضمن فکر کنم یه اشتباه کوچولو کردید اول گفتین یه بانک به اسم Sample بسازیم ولی بعد تو connection string نام بانک رو SampleDB وارد کردین....

شما با همون حالت Windows Authentication وصل شو بعد رو Server اصلیت که Default اسم کامپیوتر هستش Right Click کن بعد Properties ، بعد Security رو انتخاب کن از بخش Server Authentication حالت Default رو روی SQL And Windows Authentication .... بذار حالا Okay کن و .... حالا می تونی User تعریف کنی ( یه سری User پیش فرض هست ) و بعدش تو Connection String ات Userو Password بدی تو حالت معمولی نمیشه .....

hamedjonjon
جمعه 13 مرداد 1391, 12:48 عصر
سلام
با تشکر از آموزشهای شما
لطفا نحوه اتصال به بانک اکسس رو هم بگید
ممنون میشم

hamedjonjon
جمعه 13 مرداد 1391, 12:50 عصر
اگه امکان داره یه نفر درست و حسابی به این سوال من در این پست : تبدیل بانک (http://barnamenevis.org/showthread.php?354569-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%A8%D8%A7%D9%86%DA%A9-%D8%A7%DA%A9%D8%B3%D8%B3-%D8%A8%D9%87-Microsoft-SQL-Server-Database-File-(SqlClient))
جواب بده
با تشکر

Arash_janusV3
جمعه 13 مرداد 1391, 13:02 عصر
سلام
با تشکر از آموزشهای شما
لطفا نحوه اتصال به بانک اکسس رو هم بگید
ممنون میشم

متشکرم
این یک نمونه می باشد
نمایش اطلاعات در ListBox در Acceass (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=1562063&viewfull=1#post1562063)

madrid-poorya
دوشنبه 23 مرداد 1391, 14:42 عصر
با سلام
فکر میکنم سوال من ساده باشه
میخوام اطلاعاتی که توی gridview پر کردم رو وقتی روی هر کدوم از سطرهاش کلیک میکنم توی تکس باکس هام نشون داده بشه و بشه ویرایشش کرد
فقط مشکلم اینه که با چه دستوری توی dridview اطلاعاتش رو توی تکس باکس هام بریزم
Private Sub DataGridView2_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellContentDoubleClick
txtcodebimeh.Text = DataGridView2.CurrentRow.ToString

End Sub
اینو همینطوری نوشتم برای روشن شدن قضیه

sahel65
سه شنبه 21 شهریور 1391, 19:27 عصر
سلام آقا آرش؛
از ایجاد پستی به این پرباری و خوبی ممنون و متشکرم.
دستتون درد نکنه،
من تو این پست (http://barnamenevis.org/showthread.php?360519-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A7%D8%B3%D8%AA%D8%A7%D9%86%D8%AF%D8%A7%D8%B1%D 8%AF-%D8%A8%D9%87-DB-%D9%88-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1-%D8%A2%D9%86-%D8%AF%D8%B1-%D8%B5%D9%81%D8%AD%D8%A7%D8%AA-%D9%85%D9%88%D8%B1%D8%AF-%D9%86%DB%8C%D8%A7%D8%B2)سوالی کرده بودم که بنظر این پست (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=1554068&viewfull=1#post1554068)جوابش باشه.
آیا درست میگم؟
سوالم این بود:

اگه بخوایم برای برنامه های تحت ویندوز مشابه برنامه های تحت وب که رشته کانکشن رو تو webconfig تعریف می کنیم و هر وقت که نیاز داشتیم یک رشته از اتصالمون رو تو صفحه قرار می دیم و در واقع از تکرر ایجاد کانکشن کاسته و همچنین در صورت تغییر رمز عبور ، نیازی نیست که در همه صفحات بصورت دستی این کار رو انجام بدیم، هم یک چنین فایلی داشته باشیم باید چه فایلی رو به پروژه اضافه کنیم که رشته اتصال به بانک رو اونجا تعریف کنیم؟
مثلا باید application configuration file باشه یا setting file یا چی؟
ببخشید که سوالم ممکنه مبتدی باشه.

Arash_janusV3
سه شنبه 21 شهریور 1391, 20:34 عصر
سپاس از قدردانی شما sahel65 (http://barnamenevis.org/member.php?79736-sahel65) عزیز
بهترین روش استفاده از همین روشی ست که خودتون هم مشاهده کردید

استفاده از فایل کناری برای ارتباط با دیتابیس (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=1554068&viewfull=1#post1554068)

sahel65
شنبه 25 شهریور 1391, 19:02 عصر
سلامی دوباره؛
ببینید در پست 5 ؛ تا اونجایی که من اطلاع دارم connectionTimeout برای این هست که DB برای مدت زمان زیادی جهت انجام عملیاتی باز نمونه و اگه عملیاتی زیاد از حد طول کشید و یا شاید مشکوک بود اون اتصال رو ببنده، حالا اگه بعنوان مثال ما بخواهیم طول مدت زمان اتصال بیشتر باشه باید از چه دستوری استفاده کنیم؟
2- همچنین در مورد خاصیت packetsize و نحوه تغییر اون هم اگه توضیح کوچکی بدید ممنون میشم.
3- دستور ; ()command.Dispose برای این هستش که اشیاء ساخته شده را از حافظه پاک کنیم؟
مگه خود #C خاصیت پاک کردن یا همون Garbage collection رو اجرا نمیکنه بعد از مدت زمان معینی؟
درخصوص پست شماره 6 ، اتصال دیتابیس ها به یکدیگر چه مزایایی دارد؟
با تشکر فراوان از شما

davood59
شنبه 25 شهریور 1391, 19:59 عصر
با عرض سلام و ادب؛
آقا آرش گرامی؛ من چند روزی بیشتر نیست که پست شما رو دیدم، واقعا از لطف شما در ارائه چنین پست مفید و جالبی بینهایت سپاسگزار و ممنونم. دستتون درد نکنه؛
دوست عزیز من اومدم و طبق آموزش شما پیش رفتم ولی بنظرم در پست هفتم شما از Sp به نام INSERT استفاده کردین؛ امکانش هست اون SP رو هم بذارید؟
ضمنا نمایش خطای زیر بدلیل همون نبودن SP مورد نظر هستش؟ آخه من هیچ SP برای Sql تعریف نکردم.
لازم به ذکر هستش که من فیلدها رو دقیقا مطابق با فرمایش شما ایجاد کردم.


http://up.vatandownload.com/images/guc4q2c474aykyytv2ly.png


با سپاس

Arash_janusV3
شنبه 25 شهریور 1391, 20:55 عصر
با عرض سلام و ادب؛
آقا آرش گرامی؛ من چند روزی بیشتر نیست که پست شما رو دیدم، واقعا از لطف شما در ارائه چنین پست مفید و جالبی بینهایت سپاسگزار و ممنونم. دستتون درد نکنه؛
دوست عزیز من اومدم و طبق آموزش شما پیش رفتم ولی بنظرم در پست هفتم شما از Sp به نام INSERT استفاده کردین؛ امکانش هست اون SP رو هم بذارید؟
ضمنا نمایش خطای زیر بدلیل همون نبودن SP مورد نظر هستش؟ آخه من هیچ SP برای Sql تعریف نکردم.
لازم به ذکر هستش که من فیلدها رو دقیقا مطابق با فرمایش شما ایجاد کردم.


http://up.vatandownload.com/images/guc4q2c474aykyytv2ly.png


با سپاس

درود بر شما
سپاس از توجه و قدردانی شما
دوست عزیز در اینجا INSERT مستقیما اطلاعاتی رو وارد دیتابیس می کند
و در اینجا از هیچ sp استفاده نشده است
در این عکسی که من مشاهده می کنم
فکر کنم اشتباه از دستور Insert هستش
شما دقیقا از این دستور استفاده کنید

SqlCommand command = new SqlCommand("INSERT " + " INTO Acc_Group (SalMali,Code_Group,Name_Group)" + " VALUES(91,1,N'دارایی ثابت')", con);


در دستور شما Insert به Into کاملا چسبیده هستش و همینطور قبل از Values هم فاصله وجود ندارد
اگر مشکلتان حل نشد
لطفا کامل کد رو بگذارید

Arash_janusV3
شنبه 25 شهریور 1391, 21:17 عصر
سلامی دوباره؛
ببینید در پست 5 ؛ تا اونجایی که من اطلاع دارم connectionTimeout برای این هست که DB برای مدت زمان زیادی جهت انجام عملیاتی باز نمونه و اگه عملیاتی زیاد از حد طول کشید و یا شاید مشکوک بود اون اتصال رو ببنده، حالا اگه بعنوان مثال ما بخواهیم طول مدت زمان اتصال بیشتر باشه باید از چه دستوری استفاده کنیم؟
2- همچنین در مورد خاصیت packetsize و نحوه تغییر اون هم اگه توضیح کوچکی بدید ممنون میشم.
3- دستور ; ()command.Dispose برای این هستش که اشیاء ساخته شده را از حافظه پاک کنیم؟
مگه خود #C خاصیت پاک کردن یا همون Garbage collection رو اجرا نمیکنه بعد از مدت زمان معینی؟
درخصوص پست شماره 6 ، اتصال دیتابیس ها به یکدیگر چه مزایایی دارد؟
با تشکر فراوان از شما

درود بر شما
با سپاس از توجه و قدردانی شما
پاسخ:
1_در تنظیمات Sql به دنبال TimeOut باشید
مطالب زیادی در این باره گفته شده بهتر است به بخش مربوطه مراجعه و همه آنها را بخوانید
2_منظورتون رو متوجه نشدم
آیا برای کار با فایل هاست؟
3_بله
4_گمان نمی کنم
بهتره تحقیق کنید
5_برای گرفتن اطلاعات
مثلا شما هم سیستم مالی دارید و هم انبارداری حالا می خواهید در مالی اطلاعاتی از انبارداری نمایش بدید
می توانید آدرس Connection رو تغییر بدید و به اطلاعات مورد نظر دست پیاده کنید و سپس به مالی بازگردید

بهزادانلاین
شنبه 25 شهریور 1391, 22:01 عصر
با سلام و سپاس فراوان از لطفطون.
بنده در مورد کانکشن مشکلی که دارم اینه در اجرای Sql Management Studio در حالت حادی با خطا مواجه میشم و مجبورم Run as Administrator اجرا بگریم .
اما نمیدونم در سی شارپ باید از چه connection string استفاده کنم ؟

SqlConnection conn=New SqlConnection("server=(local);database=database1;trusted_connecti on=yes;");

این رشته رو قبول نمی کنه قبلا با این رشته وصل میشدم مشکل نداشت. در ضمن از sql 2005 standard و ویندوز 7 استفاده میکنم.

Arash_janusV3
شنبه 25 شهریور 1391, 22:11 عصر
با سلام و سپاس فراوان از لطفطون.
بنده در مورد کانکشن مشکلی که دارم اینه در اجرای Sql Management Studio در حالت حادی با خطا مواجه میشم و مجبورم Run as Administrator اجرا بگریم .
اما نمیدونم در سی شارپ باید از چه connection string استفاده کنم ؟

SqlConnection conn=New SqlConnection("server=(local);database=database1;trusted_connecti on=yes;");



این رشته رو قبول نمی کنه قبلا با این رشته وصل میشدم مشکل نداشت. در ضمن از sql 2005 standard و ویندوز 7 استفاده میکنم.

درود بر شما
اگر برای ورود به دیتابیس احتیاجی به رمز و پسورد نیست
آن قسمت مربوطه را حذف کنید
ارتباط با دیتابیس در sql (http://barnamenevis.org/showthread.php?346847-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%85%D8%AB%D8%A7%D9%84%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=1529488&viewfull=1#post1529488)

sahel65
یک شنبه 26 شهریور 1391, 19:12 عصر
ممنون از اینکه پاسخ میدید.

2_منظورتون رو متوجه نشدمشرمندم اگه خوب مطرح نکردم؛ منظورم این هست که packetsize چه چیزی رو به ما نشون میده و چه خواصی داره؟
همچنین در خصوص کدهای زیر :

1-Transaction.Save("This Point");
2-Transaction.Rollback("This Point");
3-Transaction.Commit();

به ترتیب:
1- تراکنش را ثبت و ذخیره می کند.
2- تراکنش را به حالت اولیه می برد.
3- تراکنش را به حافظه DB می سپارد.
طبق جستجویی که انجام دادم آیا تشریح کدهای فوق رو درست نوشتم؟
اگه اینجوری باشه جای 2 و 3 نباید عوض بشن؟ یعنی اول به حافظه DB بسپارن بعدش تراکنش رو آزاد کرده و به حالت اولیه ببرند؟
و در این خطوط :

SqlTransaction Transaction = con.BeginTransaction();command1.Transaction = Transaction;
command2.Transaction = Transaction;



شما یک شی ء از نوع sqltransaction ایجاد کردین؛ امکانش هست خط بعدی رو توضیح بدین؟ ما میتونیستیم این شی ء رو تعریف نکرده و به جای اون از دستور زیر استفاده کنیم؟

command1.Transaction = con.BeginTransaction();


در واقع اگه فقط یک دستور command میداشتیم میشد از دستور فوق که نوشتم استفاده کرد؟
آیا شما برای این از الگوریتم خودتون استفاده کردین که از تکرار con.BeginTransaction(); جلوگیری بشه؟
خیلی ممنونم

davood59
دوشنبه 10 مهر 1391, 08:28 صبح
سلام آقا آرش؛
ضمن تشکر از شما بدلیل زحماتتون؛ ازتون سوالی داشتم.
من برای اینکه طرز استفاده از try و catch رو یادبگیرم اومدم و پست شماره 10 رو (دسترسی به اطلاعات موجود در جدول) به این نحو بازنویسیش کردم.
آیا درست نوشتم و اصول استفاده از try و catch در اینگونه موارد که با بانکهای اطلاعاتی سروکار داریم درسته؟


SqlDataReader rdr = command1.ExecuteReader();
try
{

while (rdr.Read())
{

textBox1.Text = rdr["Name_Group"].ToString();
}
}
catch
{

if (!rdr.Read())
{
MessageBox.Show("عدم وجود اطلاعات مورد نظر", "وجود ندارد", MessageBoxButtons.OK);

}
}
finally
{
con.Close();
}



البته راستش رو بخواین اولش فکر می کردم درست جواب بده و بعنوان مثال عددی رو دادم که توی لیست جداول نبود، ولی دیدم نه این کد جواب نمیده ، و اگه عددی چه باشه چه نباشه catch رو نادیده میگیره! آیا استنباط من از این ساختار غلط هستش؟

SharpSabre
دوشنبه 10 مهر 1391, 09:46 صبح
try ، catch رو برای کنترل خطای برنامه استفاده می کنیم و در دستور catch باید راه های برون رفت از خطا رو بنویسیم ، ( خطا مثل ارورهای هندلینگ برنامه )
دستور Catch بهتره آخرین دستور باشه و قراردادن شرط در این دستور صحیح نیست بنظرم شما try ، catch رو مثل دستورات if , else استفاده کردید .

davood59
دوشنبه 10 مهر 1391, 13:30 عصر
بنظرم شما try ، catch رو مثل دستورات if , else استفاده کردید .
ممنونم دوست عزیز؛ فکر کنم حق با شما باشه و من این اشتباه رو کردم.
پس ببینید در این مورد اگه ما بخوایم این دستورات رو استفاده کنیم برای چه مواقعی ازشون استفاده میشه؟
اگه رمز اتصال اشتباه بود یا اگه بانکی وجود نداشت؟ امکانش هست یه sample در این مورد بیارید؟
ببخشید.

SharpSabre
دوشنبه 10 مهر 1391, 14:26 عصر
ممنونم دوست عزیز؛ فکر کنم حق با شما باشه و من این اشتباه رو کردم.
پس ببینید در این مورد اگه ما بخوایم این دستورات رو استفاده کنیم برای چه مواقعی ازشون استفاده میشه؟
اگه رمز اتصال اشتباه بود یا اگه بانکی وجود نداشت؟ امکانش هست یه sample در این مورد بیارید؟
ببخشید.

try
{
SqlDataReader rdr = command1.ExecuteReader();
while (rdr.Read())
{

textBox1.Text = rdr["Name_Group"].ToString();
}

else if (!rdr.Read())
{
MessageBox.Show("عدم وجود اطلاعات مورد نظر", "وجود ندارد", MessageBoxButtons.OK);
}
con.Close();
}
catch
{

}

دستورات شما بدین ترتیب با Try , Catch نوشته می شه .

sirvan-me
جمعه 14 مهر 1391, 13:18 عصر
سلام ... یه سوال داشتم ... من 2 تا جدول دارم که با هم بر اساس یه فیلد ( کلید ) با هم رابطه دارن و از طریق ابزار های موجود تو خود SQL SERVER هم ارتباز رو برقرار کردم و تنظیمات مربوط به Update و Delete رو به حالت Cascade تنظیم کردم ... تو برنامم بخشی برای افزودن Record به دو جدول دارم یعنی به این صورت که اطلاعات موجود در فرمم بخشی در جدوا والد و بخشی در جدول فرزند قرار می گیره . می خوام با استفاده از کلاس Transaction عمل زیر رو انجام بدم ... میشه راهنمایی بفرمائید :

اطلاعاتی که باید به جدول اصلی Insert بشن ابتدای قضیه وارد میشن .. اگر اطلاعات به صورت کامل در جدول اصلی ثبت شدند ... اطلاعات جدول فرزند هم در جدول فرزند ثبت بشن البته به این صورت که مقدار فیلد کلید اصلی رکورد Insert شده در جدول اصلی در فیلد کلید خارجی جدول فرزند ثبت بشه ... این رو به این خاطر می گم که بعدا که می خایم Inner Join بزنم راحت باشم ... مرسی ممنون

sirvan-me
سه شنبه 18 مهر 1391, 10:41 صبح
کسی نیست بتونه کمک کنه ؟

Nima_kyan
سه شنبه 18 مهر 1391, 11:01 صبح
طلاعاتی که باید به جدول اصلی Insert بشن ابتدای قضیه وارد میشن .. اگر اطلاعات به صورت کامل در جدول اصلی ثبت شدند ... اطلاعات جدول فرزند هم در جدول فرزند ثبت بشن البته به این صورت که مقدار فیلد کلید اصلی رکورد Insert شده در جدول اصلی در فیلد کلید خارجی جدول فرزند ثبت بشه ... این رو به این خاطر می گم که بعدا که می خایم Inner Join بزنم راحت باشم ... مرسی ممنون
خوب الان مشکل شما کدوم بخششه؟؟؟

RIG000
سه شنبه 18 مهر 1391, 12:00 عصر
بچه ها من یه نمونه بنامه با اکسس و ویژوال استدیو 2008 میخام که توش relation ship رعایت شده باشه . دنبال یکسری کد کوئری هایی هستم که insert و update و del و Search توش رعایت شده باشه به طور استاندارد . مثلا 3 مقدار داریم که تو سه جدولی که باهم در ارتباط هستند میخام بریزم اپدیت کنم و دلیت و سرچ کنم. . کد کوئریشو میخام. یکی از دوستان یه نمونه برنامه بنویسه ممنون میشم . اینطوری عملی بهتر متوجه میشم. ممنون میشم کسی این لطف رو واسم انجام بده.

far1990
چهارشنبه 19 مهر 1391, 22:20 عصر
سلام دوستان میشه راجع به برنامه نویسی سه لایه برام توضیح بدین چطور باید لایه های رو ایجاد کرد و بهم متصل کرد؟

blackwidow64
شنبه 22 مهر 1391, 11:05 صبح
اگه بخوام اینی که شما گفتین نصب کنم از بین این 2 گزینه کدوم رو باید نصب کنم:
88461

برای اطلاع از ورژن Sql نصب شده از این اسکریپت می توانید استفاده کنید:
SELECT @@VERSION

ziduat
یک شنبه 23 تیر 1392, 09:37 صبح
سلام به همه
من یک stored procedure نوشتم که بر اساس یه شرط یا باید 1 یا -1 رو برگردونه. به صورت زیر:

ALTER PROCEDURE [dbo].[check]

AS
BEGIN

if exists(select personnelcode
from table1
where table1.personnelcode not in (select personnelcode
from table2))
return (-1)
else
return 1

END

توی ویژوال هم به این صورت نوشتم:

public static int operatequery(string storedprocedurename)
{
connection = new SqlConnection(connectionstring);
try
{
SqlCommand command = new SqlCommand(storedprocedurename, connection);
command.CommandTimeout = int.MaxValue;
command.CommandType = CommandType.StoredProcedure;
connection.Open();

object returnvalue = command.ExecuteScalar();
connection.Close();
return int.Parse("0" + returnvalue);
}
catch (Exception ex)
{
connection.Close();
return -1;
}
}


و بعد این تابع رو توی رویداد یک button فراخوانی کردم ولی مشکلی که داره اینه که return value توی تابع null هست و مقدار نمی گیره
ممنون میشم راهنمایی کنید.