PDA

View Full Version : 4 سوال مهم که ممکنه برای هر کسی پیش بیاد



bahar2008
چهارشنبه 17 بهمن 1386, 09:29 صبح
سلام به همه دوستان خوبم

1 - مشکل این دستورات در اتصال به بانک sql چی هست که با اینکه هیچ پیغام خطایی نمی ده ولی برنامه رو اجرا نمی کنه و اطلاعات رو از بانک منتقل نمی کنه؟:عصبانی++:

Dim cn AsNew SqlClient.SqlConnection
cn.ConnectionString = "Data Source=office-af69401d;Initial Catalog=project;Integrated Security=True"
Dim cmd AsNew SqlClient.SqlCommand
Try
cn.Open()
cmd.Connection = cn
cmd.CommandType = Data.CommandType.Text
cmd.CommandText = " INSERT INTO user(id,name,pass1,pass2,vahed)VALUES(@TextBox1,@T extBox2,@TextBox3,@TextBox4,@TextBox5)"
cmd.Parameters.Add("@TextBox1", SqlDbType.Char)
cmd.Parameters.Add("@TextBox2", SqlDbType.Char)
cmd.Parameters.Add("@TextBox3", SqlDbType.Char)
cmd.Parameters.Add("@TextBox4", SqlDbType.Char)
cmd.Parameters.Add("@TextBox5", SqlDbType.Text)
cmd.Parameters("@TextBox1").Value = Me.TextBox1.Text
cmd.Parameters("@TextBox2").Value = Me.TextBox2.Text
cmd.Parameters("@TextBox3").Value = Me.TextBox3.Text
cmd.Parameters("@TextBox4").Value = Me.TextBox4.Text
cmd.Parameters("@TextBox5").Value = Me.TextBox5.Text
cmd.ExecuteNonQuery()
Catch ex As Exception
cn.Close()
EndTry

---------------------------------------- 2 - چطوری در datagrid هم سطر داشته باشیم و هم ستون؟ چون وقتی اطلاعات بانکی رو در گرید می آرم فقط عناوین ستون هاش رو نشون می ده و عناوین سطرها رو نشون نمی ده :ناراحت: 3 - در datagrid چطوری می تونیم check box قرار بدیم؟ من می خوام برای هر خانه در گرید یک check box قرار بدم . چه طوری می تونم این کارو انجام بدم؟ 4 - چطوری اطلاعات وارد شده در هر سطر در datagrid رو می تونم مشخص کنم که در بانک مربوط به خودش و فیلد مربوط به خودش در بانک منتقل بشه؟(چون ممکنه که یک ستون اطلاعاتش از یک بانک و یک ستون از بانک دیگری باشد) -------------------------------------- ممنون می شم اگر دوستان بتونن جواب سوالاتم رو بدن چون خیلی وقته که دنبال جواب این سوالات بودم ولی جوابشون رو هیچ جا پیدا نکردم

- لطفا در هر تاپیک یک سوال مطرح کنید و عنوان تاپیکتون رو هم یک عبارت گویا انتخاب کنید. با احترام

raravaice
چهارشنبه 17 بهمن 1386, 11:25 صبح
سلام


با اینکه هیچ پیغام خطایی نمی ده ولی برنامه رو اجرا نمی کنه و اطلاعات رو از بانک منتقل نمی کنه

1.شما try و catch و end try رو بر دارید تا error رو واضح ببینید.





- چطوری در datagrid هم سطر داشته باشیم و هم ستون؟ چون وقتی اطلاعات بانکی رو در گرید می آرم فقط عناوین ستون هاش رو نشون می ده و عناوین سطرها رو نشون نمی ده


احتمالا اتصال درست بر قرار نشده





3 - در datagrid چطوری می تونیم check box قرار بدیم؟ من می خوام برای هر خانه در گرید یک check box قرار بدم . چه طوری می تونم این کارو انجام بدم؟

4 - چطوری اطلاعات وارد شده در هر سطر در datagrid رو می تونم مشخص کنم که در بانک مربوط به خودش و فیلد مربوط به خودش در بانک منتقل بشه؟(چون ممکنه که یک ستون اطلاعاتش از یک بانک و یک ستون از بانک دیگری باشد)


یه مطالعه کلی روی این پست داشته باشید کمکتون میکنه.
http://barnamenevis.org/forum/showthread.php?t=50594

موفق باشید

bahar2008
چهارشنبه 17 بهمن 1386, 11:39 صبح
ممنونم از راهنماییتون دوست عزیز

من try و catch و end try رو برداشتم و خطای Incorrect syntax near the keyword 'user' رو برای دستور
cmd.ExecuteNonQuery() داد

من منظور این خطا رو نفهمیدم می شه واضح تر توضیح بدید درباره مشکل این برنامه ؟

saman_itc
چهارشنبه 17 بهمن 1386, 11:45 صبح
یهتر یکی یکی دنبال جواباتون بگردین

arashkey
چهارشنبه 17 بهمن 1386, 11:56 صبح
کافیه اسم جدولتون رو عوض کنید . یعنی مثلا اسمش رو بکنید tblUser
برای اینکه به این جور مشکلات تو ثبت quarry بر نخورید ، خود دستور رو اول تو یک متغییر رشته ای مثلا به نام strSQL بریزید.
بعد قبل از اینکه دستور

cmd.ExecuteNonQuery()
رو اجرا کنید یک breakpoint بگزارید . مقدار داخل متغییر رشته ای رو کپی کنید و برید داخل بانک این دستور رو به شکل یک quarry مستقیما درج کنید

bahar2008
چهارشنبه 17 بهمن 1386, 11:56 صبح
ممنونم دوست عزیز
سوال اول خیلی برام مهم و ضروریه
اگر امکان داره مشکل سوال اول رو برام بگید

raravaice
چهارشنبه 17 بهمن 1386, 12:08 عصر
cn.ConnectionString = "Data Source=office-af69401d;Initial Catalog=project;Integrated Security=True"


به آدرس : http://www.connectionstrings.com/?carrier=sqlserver مراجعه کنید تا اطلاعات بیشتری در زمینه ConnectionString به دست بیارید.

arashkey
جمعه 19 بهمن 1386, 12:12 عصر
ممنونم دوست عزیز
سوال اول خیلی برام مهم و ضروریه
اگر امکان داره مشکل سوال اول رو برام بگید
من هم جواب سوال اول رو دادم ، ولی شاید کامل توضیح ندادم. این بار یکم بیشتر توضیح می دم.
در کد بالا مشخص هست که شما یک جدول به نام user ساختید که شامل فیلدهایی مثل id,name,pass1و... هست. پیشنهاد من این بود که هرگز اسم جدول رو keyword هایی مثل user, select, where , ... انتخاب نکنید. چون در کد نویسی کارتون رو سخت تر می کنه. بهتر آنست که برای نام جدول ها و نام بانک یک پیشوند ( prefix ) مناسب مثلا tbl انتخاب کنید تا هم کد نویسی ساده تر بشه ،هم خانا تر.
حالا اگر اصرار دارید که از همین نام جدول user استفاده کنید کافیه در جایی که از نام جدول استفاده کردید از یک براکت استفاده کنید . یعنی هر جا که اسم جدول user را می نویسد . آنرا بین دو براکت قرار دهید به این شکل [user] تا کد شما به درستی اجرا شود و آنرا با دستور user اشتباه نگیرد
پس در این حالت کد شما به این شکل در می آید


Dim cn As New SqlClient.SqlConnection
cn.ConnectionString = "Data Source=office-af69401d;Initial Catalog=project;Integrated Security=True"
Dim cmd As New SqlClient.SqlCommand
Try
cn.Open()
cmd.Connection = cn
cmd.CommandType = Data.CommandType.Text
cmd.CommandText = " INSERT INTO [user](id,name,pass1,pass2,vahed)VALUES(@str1,@str2,@str 3,@str4,@str5)"
cmd.Parameters.AddWithValue("str1", Me.TextBox1.Text)
cmd.Parameters.AddWithValue("str2", Me.TextBox2.Text)
cmd.Parameters.AddWithValue("str3", Me.TextBox3.Text)
cmd.Parameters.AddWithValue("str4", Me.TextBox4.Text)
cmd.Parameters.AddWithValue("str5", Me.TextBox5.Text)
cmd.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
cn.Close()
End Try

البته بجز دستور [user] لازم نبود باقی کد را عوض کنید . ولی من برای بهتر شدن کد این کار را کردم. اگر خواستید دلایل این کار را نیز خواهم گفت.

bahar2008
یک شنبه 21 بهمن 1386, 20:58 عصر
ممنونم دوست عزیز از کمک و راهنماییتون
من اسم table رو عوض کردم و دیدم که کل برنامه به هم می ریزه و هزار تا پیغام خطا می داد برا همین ترجیح دادم اسمش همون قبلی باشه .

البته من این نکته رو نمی دونستم که ممکنه اسم table رو متوجه نشه و لازم هست که داخل براکت بزارم .:متفکر:
ممنونم از راهنماییتون ...این راه رو هم امتحان می کنم انشالله که بالاخره جواب بده .....آخه چند روزه که باهاش مشکل دارم و هر جایی از کدش رو دست می زنم باز هم درست اجرا نمی شه :ناراحت::ناراحت:

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

bahar2008
دوشنبه 22 بهمن 1386, 09:33 صبح
سلام به همه دوستان خوبم
بالاخره مشکل ورود اطلاعات به بانک با کمک شما دوستان حل شد:قلب::قلب:
مشکل فقط همون براکت ها بود که چند روزه دنبال مشکلش بودم و حل نمی شد :عصبانی++:

واقعا خوشحالم که با سایت به این خوبی آشنا شدم که خیلی سریع می تونم مشکلاتم رو با کمک شما دوستان حرفه ای حل کنم :قلب::قلب::قلب::قلب:

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

جواب سوال سومم رو هم خودم کشف کردم
یک سوال دیگه ای که داشتم این هست که چه جوری می تونم از دو بانک مختلف اطلاعات رو در یک data grid قرار بدم؟
مثلا یکی از ستون هاش از یک بانک اطلاعاتش آورده بشه و 2 تا از ستون هاش از بانک دیگه ای اطلاعاتش آورده بشه و در همون بانک هم اطلاعاتش ذخیره بشه ؟؟؟؟؟

raravaice
دوشنبه 22 بهمن 1386, 13:06 عصر
bahar2008 (http://barnamenevis.org/forum/member.php?u=55806)
سئوالتون رو توی یه تاپیک جدید اعلام کنید تا زود تر به نتیجه برسید.

dataset merged