PDA

View Full Version : سوال: انتقال اطلاعات از تکست باکس های روی فرم به دیتابیس ....



djhooman
چهارشنبه 02 شهریور 1390, 19:21 عصر
سلام دوستان

نماز روزهاتون قبول باشه ....

یه چند وقتیه هی سوال میکنم ، شما دوستان هم زحمت می کشید جواب میدید ...
این برنامه نویسی هم دنیایی داره برا خودش .... عین مواد مخدر میمونه که آدم و معتاد خودش میکنه ....
من داشتم دیشب ساعت 11 شب از مطالب سایت ، نمونه پروژه ها و ... مطلب یاد می گرفتم که سرم و برگردوندم دیدم ساعت شد 4 صبح ........
بگذریم ..............

من تو سایت برای سوالاتم جستجو کردم جوابم و گرفتم ، اما یکم بیشتر به توضیح نیاز دارم .

دیتابیس من Access هست

1 - من توی فرمم چند تا تکست باکس هست که میخوام اطلاعات اونا ریخته بشه تو دیتابیسم ...
برای درج اطلاعات تکست باکسم به دیتابیس ، کدی پیدا کردم و به این صورت تغییرش دادم :


Private Sub ADD()
Application.DoEvents()

Try

Dim c As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\DB.mdb")
Dim D_add As New OleDbDataAdapter
Dim g As String = NoeDarkhastComboBox.Text
Dim M As String = BabateComboBox.Text


Dim co As New OleDbCommand("INSERT INTO Gavahi(11,22,33,44,55,66,77,88,99,10) Values (@11,@22,@33,@44,@55,@66,@77,@88,@99,@10)", c)


co.Parameters.AddWithValue("@11", NoeDarkhastComboBox.Text)
co.Parameters.AddWithValue("@22", MablaghTextBox.Text)
co.Parameters.AddWithValue("@33", BabateComboBox.Text)
co.Parameters.AddWithValue("@44", TarikhTextBox.Text)
co.Parameters.AddWithValue("@55", ArzeshAfzoodeLabel2.Text)
co.Parameters.AddWithValue("@66", TotalLabel2.Text)
co.Parameters.AddWithValue("@77", ShParvandehTextBox.Text)
co.Parameters.AddWithValue("@88", CodeNosaziTextBox.Text)
co.Parameters.AddWithValue("@99", MalekTextBox.Text)
co.Parameters.AddWithValue("@10", MoteghaziTextBox.Text)

c.Open()
co.ExecuteNonQuery()
c.Close()
MessageBox.Show("اطلاعات با موفقیت در بانک اطلاعاتی ثبت شد", "", MessageBoxButtons.OK, MessageBoxIcon.Information)

Catch ex As Exception
MsgBox(ex.Message)

End Try
ShParvandehTextBox.Text = ""
MalekTextBox.Text = ""
NoeDarkhastComboBox.Text = ""
MablaghTextBox.Text = ""
BabateComboBox.Text = ""
TarikhTextBox.Text = ""
ArzeshAfzoodeLabel2.Text = ""
TotalLabel2.Text = ""
MoteghaziTextBox.Text = ""
CodeNosaziTextBox.Text = ""


End Sub

وقتی تمام تکست باکس هارو پر کرده باشم و دکمه ثبت رو کلیک می کنم اطلاعات و میفرسته تو بانک اطلاعاتی .... اما اگر یک فیلدی خالی بمونه و دکمه ثبت رو کلیک کنم اررور زیر و میده :
data type mismatch in criteria expression

چرا ؟؟؟

2 - برای ویرایش رکورد از چه دستوری استفاده کنم ؟؟

2-1- مثلا اگر بخوام توی ددیتاگرید ویو یک سطر رو روش دابل کلیک کنم و برای ویرایشش یه فرم باز بشه و اطلاعات رو توی اون فرم آپدیت کرد ......

3- برای حذف رکورد چی ؟؟؟

4 - دو تا دکمه دارم ، دکمه قبلی و دکمه بعدی !!! وقتی دکمه قبلی کلیک شد ، رکورد قبلی و بیاره و اگر بعدی کلیک شد رکورد بعدی و بیاره ....

در ضمن نمیخوام از BindingNavigator استفاده کنم .... میخوام بصورت دستی کد نویسی اش و یاد بگیرم ....

مرسی ....

ahmadreza517
چهارشنبه 02 شهریور 1390, 22:21 عصر
سلام دوست عزیز
به آدرس زیر سر بزن
http://howprg.blogfa.com/post-15.aspx

djhooman
چهارشنبه 02 شهریور 1390, 23:40 عصر
سلام دوست عزیز
به آدرس زیر سر بزن
http://howprg.blogfa.com/post-15.aspx

مرسی از توجهت ...

من تو تاپیک نوشتم که نمیخوام از BindingNavigator استفاده کنم .

djhooman
پنج شنبه 03 شهریور 1390, 01:53 صبح
مرسی از توجهت ...

من تو تاپیک نوشتم که نمیخوام از BindingNavigator استفاده کنم .
...................................

ahmadreza517
پنج شنبه 03 شهریور 1390, 15:27 عصر
سلام دوباره
برو به آدرس زیر
از طریق کد نویسی به بانک وصل شده(پروژه کامل)
http://howprg.blogfa.com/post-11.aspx

djhooman
پنج شنبه 03 شهریور 1390, 18:47 عصر
عزیزم ، قبل از اینکه این تاپیک و بزنم ، پروژه رو دانلود کردم از سایتت .....
این همون تیکه کد Add هست ....

اما موقعی که یکی از تکست باکس ها خالی باشه اون اررورdata type mismatch in criteria expression میده ...

ahmadreza517
پنج شنبه 03 شهریور 1390, 19:39 عصر
دوست عزیز
پیغامی که می ده یعنی اطلاعاتی که وارد می کنید نوعش با نوع فیلد مرد نظر در بانک فرق می کنه.
رو کامپیوتر خودم و اون کامیوتری که این برنامه رو براش نوشتم همچین مشکلی پیش نیومده .

مشکلی بود همین جا بگو (من در خدمتم)

یا حق

ahmadreza517
پنج شنبه 03 شهریور 1390, 19:41 عصر
راستی این برنامه رو win xp sp 3 بهتر کار می کنه .

djhooman
جمعه 04 شهریور 1390, 02:21 صبح
دوست عزیز
پیغامی که می ده یعنی اطلاعاتی که وارد می کنید نوعش با نوع فیلد مرد نظر در بانک فرق می کنه.
رو کامپیوتر خودم و اون کامیوتری که این برنامه رو براش نوشتم همچین مشکلی پیش نیومده .

مشکلی بود همین جا بگو (من در خدمتم)

یا حق

ahmadreza517 عزیز ،

چه ربطی داره ؟ من میگم اگر تمام تکست باکس ها رو پر کنم ، اررور نمیده ، اما اگر یکی خالی بمونه همچین ارروری و میده ... !

azimtabib
شنبه 05 شهریور 1390, 18:45 عصر
با سلام
شاید تو تنظیمات فیلدهای دیتا بیس توی اکسس تنظیم کردی که فیلد خالی قبول نکنه- برو چک کن

djhooman
شنبه 05 شهریور 1390, 23:54 عصر
نه عزیز ...
هیچ کدوم از فیلد هام رو "" ورود اطلاعات اجباری ( Required ) "" قرار ندادم ...

ebraham
یک شنبه 06 شهریور 1390, 16:12 عصر
ببين من همين كار را با اس كيو ال انجام دادم و وقتي كه در تعريف حدولت اجازه خالي بودن فيلد را بدي ديگه با زدن دكمه ذخيره مشكلي پيش نمياد . بعدا ميتوني با دستور آپديت اون فيلدهاي خالي رو پر كنيد تو جدولت . براي انتقال داده از تكست باكس به ديتابيس هم بايد يه متغير تعريف كني و محتويات تكست باكست را توش ربريزي و با دستور ADD آنرا در جدولت ذخيره كني.

ParsaNM
یک شنبه 06 شهریور 1390, 16:58 عصر
دوست عزيز نوع فيلدها رو چک کردي ... تو برنا با ديتابيس ..!

djhooman
یک شنبه 06 شهریور 1390, 23:56 عصر
همه قیلدام از نوع رشته ای هستند ...

ParsaNM
دوشنبه 07 شهریور 1390, 10:53 صبح
سايزشون چي ..؟ باب هم برابره ..؟

djhooman
دوشنبه 07 شهریور 1390, 16:23 عصر
آره ... ربطی نداره ... وقتی توی تکست باکس هایی که نیاز به پرکردن نیست ، اگر یه کلید مثل عدد 0 رو بزنی ، رکورد ثبت میشه !!!!

h_a_m_i_d
یک شنبه 13 شهریور 1390, 22:06 عصر
سلام دوست عزیز منظور دوستمون اینه که مقدار خالی فیلد به عنوان متن شناخته نمیشه
شما میتونی در اخر خانه های خالی را با space پر کنی تا اطلاعاتت بدرستی ثبت بشه
امیدوارم کمکت کرده باشم دوست عزیز

djhooman
دوشنبه 14 شهریور 1390, 15:14 عصر
با اسپیس هم قبول نمیکنه !

ParsaNM
پنج شنبه 17 شهریور 1390, 11:32 صبح
سورس رو بزار تا ببينم چش هست ...!