PDA

View Full Version : ثبت نشدن اطلاعات در دیتابیس



pedram_ns
چهارشنبه 03 آذر 1389, 15:42 عصر
سلام
من با کد های زیر یکسری اطلاعات رو در دیتابیسم می ریزم.
1. اطلاعات در دیتابیس ثبت می شه ولی وقتی برنامه رو می بندم و دوباره باز می کنم رکورد های قبلی که وارد کردم پاک می شه؟
2.همونطور که می بینید من ارتباط با دیتابیس رو بعد از انجام کار می بندم ولی باز هم باز می مونه؟


Try

Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\database.accdb")
Dim StrSql As String = "insert into anbar ([kala_number], [kala_name], [count], [description]) VALUES (@kala_number, @kala_name, @count, @description) "
Dim cmd As OleDbCommand = New OleDbCommand(StrSql, con)
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("kala_number", kala_number.Text)
cmd.Parameters.AddWithValue("kala_name", kala_name.Text)
cmd.Parameters.AddWithValue("count", count.Text)
cmd.Parameters.AddWithValue("description", description.Text)

con.Open()
cmd.ExecuteNonQuery()
kala_name.Text = ""
kala_number.Text = ""
description.Text = ""
count.Value = "1"
messagelbl.Visible = True
messagelbl.Text = "کالای جدید اضافه شد."
con.Close()

Catch ex As Exception
messagelbl.Visible = True
messagelbl.Text = "کالای جدید اضافه نشد لطفا مجددا اقدام نمایید."
End Try

reza_edu
پنج شنبه 04 آذر 1389, 00:20 صبح
سلام مطمئنی ثبت میشه !:متفکر: کد تو به این صورت تغییر بده



cmd.Parameters.AddWithValue("@kala_name", kala_name.Text)

تا اونجا که من میدونم تا از کارکتر "@" استفاده نکنی چیزی ثبت نمیشه البته اسمش "پلیچ اوردر" است فقط تو مبحث دیتابیس جای دیگه هم اسمش فرق میکنه حتما باید استفاده بشه.

VALUES (@kala_number

دلیل نوشتن این ها هم همینه:متفکر:

reza_edu
پنج شنبه 04 آذر 1389, 00:24 صبح
شما که اسم فیلد هاتون(ستونها) از هم جدا نیست لازم نیست از [] استفاده کنی.


Textbox1.Clear()این جوری فکنم بهتر از اونی که خودتون نوشتید باشه. برای ارتباط با دیتابیس هائی مثل اکسس بهتر از Notpad.UDL استفاده کنید دربارش زیاد توضیح داده شده.

mahdi1373
پنج شنبه 04 آذر 1389, 00:32 صبح
شما فایل دیتابیس در مسیر پوشه bin\debug را باز میکنید، ولی باید فایل دیتابیس در مسیر پوشه خود برنامه(همان جایی که فرم ها و ..) هستند را باز کنید. برنامه خودش از دیتابیس کپی کیگیره و اونجا میریزه.
فکر میکنم برای غیر فعال کردنش باید روی properties دیتابیستون برید و copy to output رو به Do not copy مقدار دهی کنید.

pedram_ns
پنج شنبه 04 آذر 1389, 11:01 صبح
شما فایل دیتابیس در مسیر پوشه bin\debug را باز میکنید، ولی باید فایل دیتابیس در مسیر پوشه خود برنامه(همان جایی که فرم ها و ..) هستند را باز کنید. برنامه خودش از دیتابیس کپی کیگیره و اونجا میریزه.
فکر میکنم برای غیر فعال کردنش باید روی properties دیتابیستون برید و copy to output رو به Do not copy مقدار دهی کنید.

من فرمم رو دوباره ایجاد کردم و انگار با همون کد ها کار می کنه.
راستش در یک تاپیک پرسیدم گفتن باید در پوشه debug باشه اگر در مسیر اصلی بریزم کار نمی کنه چه تغییری در کد ارتباطم باید بدم که با دیتابیس در مسیر اصلی ارتباط بر قرار کنه.

بالاخره یک نفر که کار کرده دقیق بگه باید دیتابیسم رو در چه مسیری بریزم و کد ارتباطش چیه؟
یک سئوال دیگه بقیه موارد مثل تصاویر رو باید در کجا قرار بدم؟