PDA

View Full Version : اشکال در کد نویسی



baharkabiri
جمعه 17 آبان 1387, 21:15 عصر
با سلام.من توی برنامم یه متغییر به اسم bi دارم که میخام کارهای زیر رو باهاش انجام بدم.
نمیدونم چطوری باید کد بنویسم.میدونم سوال ابتدایی است.اما کدش رو برام بزارید ممنون میشم.


bi = "select from basket max (basket_id)"
bi = bi + 1
insert into basket (...., basket_id,.....) values (.... ,'" + bi + "',....)

baharkabiri
جمعه 17 آبان 1387, 22:47 عصر
بچه ها،میدونم که باید با دیتا ریدر کار کنم .اما چجوری؟
سوالم انقدر بده؟چرا هیچکس جواب نمیده؟:ناراحت:

kablayi
شنبه 18 آبان 1387, 02:16 صبح
سلام ...
میشه روشن تر بگید که میخواین چیکار کنید ...
اگه منظورتون اینه که میخواین بصورت دستی (اتوماتیک) فیلد basket_id یکی اضاف بشه و رکورد جدید با این ID ایجاد بشه میتونید از این کد برای بدست آوردن ID بعدی استفاده کنید ...


Dim controlID1 As String
ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DatabaseName.mdb"
.
.
.

StrSql = "select max(basket_id) From basket"
Dim cn As New OleDbConnection(ConStr)
Dim cmd As New OleDbCommand(StrSql, cn)

cn.Open()
controlID1 = cmd.ExecuteScalar.ToString
cn.Close()

If controlID1 = "" Then
controlID1 = "1"
else
controlID1 = CStr(CInt(controlID1) + 1)
End If

بعد از محاسبه ID بعدی بایستی رکورد جدید رو با مقدار مناسب در جدول ذخیره کنید ... به صورت زیر :


StrSql = "insert into basket (basket_id,Name,LastName) values (@basket_id,@Name,@LastName)"
Dim cn As New OleDbConnection(ConStr)
Dim cmd As New OleDbCommand(StrSql, cn)
cmd.Parameters.AddWithValue("@basket_id", controlID1)
cmd.Parameters.AddWithValue("@Name", txtname.Text)
cmd.Parameters.AddWithValue("@LName", txtLname.Text)
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()
MessageBox.Show("!...اطلاعات جدید ثبت گردید ... ", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Information)

baharkabiri
شنبه 18 آبان 1387, 14:13 عصر
خیلی ممنون از وقتی که گذاشتید.بله تقریبا همین کار رو میخوام بکنم.
این کد ها اجرا نمیشه.یعنی فکر کنم اصلا به دیتا بیس وصل نمیشه.
من با این روش به دیتا بیس وصل میشم:

Dim strconn, str As String
strconn = "Password=s153;Persist Security Info=True;User ID=leila;Initial Catalog=EShop;Data Source=.;Connection Timeout=60;"
Dim myconnection As Data.SqlClient.SqlConnection
myconnection = New Data.SqlClient.SqlConnection(strconn)
myconnection.Open() وبعد :

Dim MyCommand As New Data.SqlClient.SqlCommand
str = ("select from basket max (basket_id)+1")

حالا نمیدونم چطوری باید اینstr
رو اجرا کنم و مقدارش رو بدست بیارم تا بتونم باهاش کار کنم.
ممنون میشم کمکم کنید.

kablayi
یک شنبه 19 آبان 1387, 22:19 عصر
سلام ...
دوست عزیز دستور select مورد نظر شما در قسمت قرمز رنگ مشخص شده و اجرا میشه و همون نتیجه مورد نظرتون بدست میاد ...
نتیجه رو در controlID1 میریزه ...
بعد عملیات اضافه کردن به ID انجام میشه و در قسمت دوم از اون استفاده میشود ...

baharkabiri
یک شنبه 19 آبان 1387, 23:16 عصر
سلام.متوجه کد شدم.اما توی برنامه من اجرا نشد!
من تو بقیه قسمت های برنامه ام با یه کد دیگه به دیتا بیس وصل شدم.میتونه دلیلش این باشه؟؟!!