PDA

View Full Version : نحوه وارد کردن رکورد جدید در بانک داده



snisni63
شنبه 30 تیر 1386, 11:17 صبح
سلام دوستان
چطور میتونم با فشردن یک کلید یک رکورد جدید در بانک داده ایجاد کنم
فرض کنید این اطلاعات از چند texbox جمع آوری شود.
با تشکر

VisualStudio
شنبه 30 تیر 1386, 13:30 عصر
با استفاده از کد زیر میشه من بصورت تابع تعریف کردم شما می توند در روال به فرض Button1 بنویسید

PublicFunction AddNew()




Try
Dim OleDbConn As OleDbConnection = New OleDbConnection(ConnString)
OleDbConn.Open()


Dim MyOledbCommand As OleDbCommand = New OleDbCommand()
Dim String1, String2, String3, String4, String5 AsString



String1 = TextBox1.Text
String2 = TextBox2.Text
String3 = TextBox3.Text
String4 = TextBox4.Text
String5 = TextBox5.Text


MyOledbCommand.CommandText = "Insert Into Table1 " _
& "(Column1,Column2,Column3,Column4,Column5) " _
& "Values (" _
& "'" & String1 & "', " _
& "'" & String2 & "', " _
& "'" & String3 & "', " _
& "'" & String4 & "', " _
& "'" & String5 & "')"
MyOledbCommand.Connection = OleDbConn
MyOledbCommand.ExecuteNonQuery()
OleDbConn.Close()

EndTry
EndFunction

snisni63
شنبه 30 تیر 1386, 18:48 عصر
دوست من خیلی ممنونم از جوابتون

اما من نمیدونم ConnString رو چه جوری باید تولید کنم.
در ضمن من با بانک Sql که همون پیش فرض وی بی هست کار میکنم.

snisni63
شنبه 30 تیر 1386, 19:55 عصر
سلام مجدد خدمت همگی دوستان
این لینک برای کار با بانک داده بسیار مفید است
امیدوارم استفاده کنید
http://www.nezaratonline.com/Articles/dbinv

VisualStudio
شنبه 30 تیر 1386, 23:18 عصر
ConnString
همون کانکش شما هست

snisni63
یک شنبه 31 تیر 1386, 16:56 عصر
بازم سلام و ممنون از جوابتون
من connstring رو از توی app.config کپی پیس کردم نمیدونم درسته یا نه.
و کد زیر رو برای وارد کردن رکورد جدید نوشتم :

Dim connString As String
connString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\database1.mdf;Integrated Security=false;Connect Timeout=30;User Instance=True"
Try

Catch ex As Exception


Dim conn As New SqlClient.SqlConnection
Dim command As New SqlClient.SqlCommand



conn.ConnectionString = connString
command.Connection = conn
command.CommandText = "INSERT INTO Table1 (column1) VALUES (@test)"
command.Parameters.Add("@test", SqlDbType.NVarChar)
command.Parameters.Item("@test").Value = TextBox1.Text


conn.Open()
command.ExecuteNonQuery()
conn.Close()
End Try

End Sub
هیچ خطایی هم داده نمیشه و همه چیز درسته. فقط رکورد جدید در بانک داده ایجاد نمیشه
فکر میکنم اجازۀ write در این مسیر داده نمیشه که نمیتونه رکورد درست کنه

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

zarrin_306
دوشنبه 01 مرداد 1386, 16:46 عصر
فرضیات :
یک دیتا بیس با نام Student داریم که حاوی رکورد های : ST NO ,ST NAME , ST FNAME
می باشد
خوب حال شروع می کنیم
فرمی داریم که حاوی یک دکمه و سه تا هم TEXTBOX هستش


Private Sub Button1_Click

Dim sconnectionas string
sconnection="...."
Dim objconnection as new Sqlclient.SqlConnection(sConnection)
objconnection.Open()

dim dagroup as new sqlclient.sqldataadapter("select * from Student ",sconnectionas )

dim dsgroup as new dataset
dagroup .fill(dsgroup,"group")


dim tblgroup as datatable
tblgroup=dsgroup.Table("group")

dim drcurrent as datarow
drcurrent =tblgroup.newRow()
drcurrent ("ST NO")=textbox1.text
drcurrent ("ST NAME")=textbox2.text
drcurrent ("ST FNAME")=textbox3.text

tblgroup.rows.add(drcurrent)

dim objcommandbuilder as new sqlclient.sqlcommandbuilder(dagroup)

dagroup.update(dsgroup,"group")
msgbox("ثبت رکورد جدید با موفقیت انجام شد ")


End Sub

اونجایی رو که با (....) مشخص هست رو می تونی به این روش به دست بیاری
یک کانکشن با ویزارد به دیتا بیس بساز بعد از sqlconnection می تونی در پرو پرتیز ایتم connectionstring رو انتخاب کن بعد تمامش رو SelectAll کن و بعد کپی ودر (...) قرار بده
ویا
به جای (...) اینو بنویس


"server =localhost;database=نام دیتابیس ;integrated Security=SSPI"رو قرار بده
این Group ی رو هم کد داخل کد هستش یک تیبل مجازی یسازد و از این طریق در جدول اصلی ذخیره میشود
موفق و موید باشید

snisni63
چهارشنبه 03 مرداد 1386, 00:29 صبح
آقا خیلی ممنون از لطفتون
پیر شی جوون
ولی بازم یه سوال :
چرا حتما باید پروژه رو بسازم تا این کد کار کنه؟ منظورم همون Build هستشا
بدون این کار و با همون F5 خودمون کار میکنه ها ولی باز رکورد ایجاد نمیکنه
میخوام بدونم خدای نکرده برنامۀ من مشکل داره یا کلا اینطوریه

mosavi_M_K
یک شنبه 04 شهریور 1386, 11:21 صبح
اقای 306_ZARRIN با سلام
من از کد شما استفاده کردم ولی در اجرا روی خط ("tblgroup=dsgroup.Table("group

سیستم ایراد میگیره.ظاهرا TABLE در کلاس DSGROUP نیست.اگه ممکنه راهنمایی بفرمائید.