# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > VB.NET > حرفه ای: کامپوننت اتصال به بانک و کدنویسی کوتاه به همراه پروژه آموزشی دفتر تلفن مختصر

## M.KH-SH

سلام

کامپوننت زیر به همراه پروژه آموزش استفاده از کامپوننت برای کدنویسی سریع و آسان ساخته شده است.

پروژه آموزشی یک دفتر تلفن بسیار ساده و مختصر میباشد که بیشتر برای نمایش نحوه استفاده از این کامپوننت میباشد این پروژه شامل 105 خط میباشد.

* این کامپوننت قابلیت اتصال به بانک access و sql را دارا میباشد و تنها با معرفی نوع بانک به راحتی میتوان تمامی دستورات را وارد کرد


لطفا نظر فراموش نشه مرسی

----------


## M.KH-SH

گویا دوستان فقط دانلود میکنن و نظری هم ندارن


اگه نظری دارین لطفا بیان کنید

----------


## alimanam

با سلام

من زیاد دقت نکردم ولی فکر میکنم باید اینجوری طراحی اش میکردی .

در انتخاب فانکشن و تابع زیاد دقت نکردی یعنی اومدی فانکشن نوشتی به جای تابع ! ( فانکشن های اون ماژول هیچی بر نمیگردوناً که جای تعجب داره )
به جای اینکه کاربر رو وادار کنی که کوئری بنویسه بهتره این جوری باشه که کاربر بیاد یک تابع داشته باشه که اسم فیلدها رو بده مقدار این فیلدها رو هم بده بعد تابع خودش بیاد تو دیتابیس کار Insert رو انجام بده دیگه نیازی نباشه کوئری رو کامل بنویسه . این یه مثال بود برای Insert برای Update کردن هم همینجور

بیشتر اگه به ذهنم رسید حتما میگم . بابت نوشتن این dll هم ازتون تشکر میکنم  :لبخند: 

موفق باشید ./

----------


## M.KH-SH

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


این dll اول بودش و خوب بعدی ها حتما این مشکلات برطرف میشه.

----------


## alasht

سلام
من وی بی دات نت زیاد بلد نیستم ولی به نظر من کانکشن استربنگ رو نباید شما از کاربر بخواین کامل بنویسه
شما باید نام دیتابیس و یوزر و پس و ... رو از کاربر بگرید و کانکشن استرینگ رو خودش تولید کنه
و همچنین کوئری ها رو هم حرف اون دستمون رو تایید میکنم
در کل خسته نباشید کارتون رو ادامه بدید تا پروژتون حرفه ای تر بشه  :چشمک:

----------


## M.KH-SH

این یک ایده اولیه بود و حتما تکمیلش میکنم

----------


## Veteran

اگه بتونین اینارو بنویسین خیلی خوبه
برای مثلا اضافه کردن

addnew(fldname,text1,fldfamily,text2,fldtel,text3,  ..........fld_n,text_n)

خوب اومدیم گفتیم fldname,text1 این یعنی بیا مقدار تکست 1 رو هرچی بود بریز توی فیلد اسم
و fldfamily,text2 اینجا هم گفتیم که مقدار تکست 2 رو هرچی بود بریز توی فیلد فامیلی
و همینطور فیلد fldtel,text3 مقدار تکست 3 ریخه بشه توی fldtel
اما fld_n و text_n چیه
منظور اینکه محدودیتی برای اضافه کردن نداشته باشیم بتونیم فیلد ها ی زیادی رو مشخص کنیم که چه چیزی قرار در اون ها قرار بگیره
ممکنه بانک ما یک فیلد داشته باشه ممکنه 100 فیلد اینجا این به کار میاد 

برای اپدیت هم مثل addnew

update(fldname,text1,fldfamily,text2,fldtel,text3,  ..........fld_n,text_n where FldName='" + FldName + "' and FldFamily='" + FldFamily + "'  )


اینجا مثلا ما توی دیتاگرید ویو اون سطری که انتخاب کردیم میگیم اپدیت کن fldnam رو بر اساس مقداری که توی text1 هست و برای بقیه هم همینطور

----------


## M.KH-SH

مرسی از توجه شما 
اینم قابل اجراست ولی نه به این زیبایی و هوشمندی که همه چیز رو خودش پیدا کنه و بنویسه  :خجالت:

----------


## M.KH-SH

کوئری نویسی بخش insert & update رو که جناب *alimanam* گفتن درست کردم

میتونین دانلود کنین
نظر جدید اگه هست بگین تا کامل تر کنم

----------


## Veteran

مشکل چیه ؟

----------


## M.KH-SH

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

در برنامه اصلی مشکلی نیست تمام مشکل از سمت کد نویسی شما حاصل شده پس برنامه رو دوباره مرور کن و ببین کجا اشتباه نوشتی

----------


## Veteran

همون نمونه ای که گذاشتین رو دانلود کردم بعد فایل پروزه رو باز کردم این ارور رو داد

----------


## Veteran

یادم رفت بگم ادرس اول توی درایو c بود اما ادرس بانک جدید که دادم باز همینو میگه 
منظور خود بانکی بود که همراه برنامه گذاشته بودین

H:\TST_PROGRAM\TST_PROGRAM\bin\Debug\db.mdb

این ادرس برای من هست اما میزنم باز ارور میده

----------


## M.KH-SH

Public con As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\db.mdb"


شما این کانکشن رو دوباره کپی کن داخل ماژول برنامه و بعد برنامه رو run کن مشکلی نداره
روی چندیدن سیستم امتحان شده و اولین موردی هست که به مشکل خورده

----------


## Veteran

تست کردم نشد!

----------


## M.KH-SH

untitled.JPG

در بخش اول شما بانک رو انتخاب میکنین.
در بخش دوم کانکشن استرینگ مربوطه رو کپی کرده و به جای کانکشن استرینگ برنامه خود وارد کنین.

----------


## alimanam

با سلام




> کوئری نویسی بخش insert & update رو که جناب *alimanam* گفتن درست کردم


مرسی که تغییراتی در dll خودتون دادین اما من منظورم به این صورت بود 



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim dbAssistancer As New ManamAccessDbAssistance.Access("db")
        If dbAssistancer.InsertToTable("fname!lname!phone!sex  ", TextBox1.Text & "!" & TextBox2.Text & "!" & TextBox3.Text & "!" & CInt(CheckBox1.Checked), "Table1") Then
            MsgBox("Record Added !")
        End If

    End Sub

یعنی شما هیچگونه محدودیتی در تعداد فیلد برای کاربر قائل نشین چه 2 تا فیلد داشته باشیم چه 20 تا فقط باید اسم فیلدها و مقادیرشون + اسم اون جدولی که قراره Insert درش انجام بشه رو از کاربر بخواین مابقی کارها به صورت خودکار انجام بشه . اگه منظورم رو متوجه نشدین بگین تا سورسی رو که نوشتم واستون ارسال کنم .

موفق باشید ./

----------


## M.KH-SH

جناب مهندس در برنامه بالا هم هیچ محدودیتی نذاشتم و به راحتی کاربر میتونه زیاد یا کم کنه
روشی که شما استفاده کردین کارکتر غیر مجاز به وجود آورده و اگه کاربر در هر جای برنامه شما علامت ! قرار بده برنامه شما دچار مشکل شده و یک فیلد از آخر رو ناشناس باقی میزاره و در نتیجه کوئری شما اشتباه جواب گویی میکنه مگر در هنگام امنیت گذاری بخش های ورودی کارکتر ! رو به صورت غیر مجاز از برنامه حذف کنین که برای کاربران برنامه این هم امری غیر منطقی هست

به بخش های مشخص شده لطفا دقت کنین

این روش بدون به وجود آمدن کارکتر غیر مجاز در برنامه میباشد:::


untitled.JPG


اگه امکان داره سورسی رو که تهیه کردین ارسال کنین برام

با تشکر

----------


## alimanam

با سلامی 3 باره

دوست خوبم مثل اینکه هنوز متوجه نشدین منظورم چی هست !!!! روشی که شما بکار بردین به این صورت هست که برای هر بار که میخواین Insert کردن  رو در جدول انجام بدین باید یک تابع add مشخص در اون ماژول بنویسین ! یعنی به فرض اگه 20 تا جدول داشتی باید 20 تا هم add بنویسی ! چرا ؟ چون پارامترهای تابع شما به صورت دینامیک ست نمیشن و ثابت هستن ( از نظر تعداد و همینطور نوع داده منظورم هستش ) فکر میکنم توضیحات رو بسیار ساده گفتم . در مورد کاراکتر غیر مجاز 100 حق با شما بود من این سورس رو برای دادن ایده به شما نوشتم و دقتی در مورد این مورد به خصوص نداشتم این مشکل به راحتی هرچه تمامتر قابل رفع هستش به این صورت که شما میتونی کاراکتر جدا کننده رو در اختیار برنامه نویس بزاری ( یعنی جدا کننده مقادیر اختیاری باشه  تا برنامه نویس به صلیغه خودش انتخابش کنه ) برای مثال من کاراکتری رو انتخاب کردم " ☺ " که به نظرم میتونه یک کاراکتر غیرمجاز برای ورود اطلاعات در نظر گرفته بشه یعنی اینکه کاربر نمیتونه از این کاراکتر خاص استفاده کنه مگه اینکه دلیل قانع کننده ایی موجود باشه که شما تصمیم بگیری تغییرش بدی و چون اختیاری هست هیچگونه محدودیتی در اون نیست پس زندگی شیرین میشود !  :چشمک: 



موفق باشید

----------


## alimanam

این هم سورس 

موفق باشید ./

----------


## Veteran

> این هم سورس 
> 
> موفق باشید ./


چرا فایل رار باز نمیشه! پسورد میخواد

----------


## sahand100

من میخواستم یک برنامه ی  paint  بسازم تو picturebox  ولی فقط میتونم تو  فرم نقاشی کنم ! و میخواستم بدانم چگونه از کیبوردز در وی بی دات نت استفاده می کنیم>؟

----------


## M.KH-SH

> من میخواستم یک برنامه ی  paint  بسازم تو picturebox  ولی فقط میتونم تو   فرم نقاشی کنم ! و میخواستم بدانم چگونه از کیبوردز در وی بی دات نت  استفاده می کنیم>؟


دوست عزیز به نظر شما این تاپیک جای این سئوال بود که پرسیدین؟

----------


## mohsen22

پسورد میخواد؟

----------

