PDA

View Full Version : سوال: چگونه تعداد زیادی رکورد را در بانک ثبت کنیم



vb341
جمعه 22 آذر 1392, 21:44 عصر
با سلام .
دوستان من میخوام در یک قسمت از برنامه یوزر شماره سهام رو از شماره مثلا 1000 تا 4000 وارد کنه و بعد به تعداد خواسته شده از 1000 تا 4000 با زدن دکمه ثبت این تعداد سهام با شماره های بینشون در بانک ثبت بشه

systam
شنبه 23 آذر 1392, 14:45 عصر
سلام
میتونی با یک حلقه اطلاعات در بانک ثبت کنی


یا علی

Ali.Paivar
دوشنبه 25 آذر 1392, 13:01 عصر
http://barnamenevis.org/showthread.php?431118-%D8%B3%D8%B1%D8%B9%D8%AA-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%DA%A9%D9%85-%D8%AF%D8%B1%D8%AC-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D8%A7%DA%A9%D8%B3%D8%B3
تو این صفحه چند تا مثال هست امیدوارم بدردت بخوره

vb341
دوشنبه 25 آذر 1392, 18:55 عصر
اين لينكي رو كه دادين اشكال داره . لطفا لينك صحيح رو بفرستين . با تشكر

Ali.Paivar
چهارشنبه 27 آذر 1392, 14:25 عصر
دوست عزیز لینک رو چک کردم درسته
تو همین فروم وی بی یه تاپیک هست با عنوان "سرعت بسیار کم درج اطلاعات در بانک اکسس"

Mani_rf
چهارشنبه 27 آذر 1392, 15:28 عصر
بهتره که لینک ها رو به این شکل بدید که هم خودتون راحت تر باشید و هم مخاطب :

لینک تاپیک (http://barnamenevis.org/showthread.php?431118-%D8%B3%D8%B1%D8%B9%D8%AA-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%DA%A9%D9%85-%D8%AF%D8%B1%D8%AC-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D8%A7%DA%A9%D8%B3%D8%B3)

vb341
پنج شنبه 28 آذر 1392, 22:47 عصر
دوستان من از کد زیر استفاده میکنم .لی در موقع قرار دادن رکورد در بانک پیغام خطا میده

Cmd = New SqlCommand("StpTejariSahamNumber", Con)
Cmd.CommandType = CommandType.StoredProcedure

Con.Open()

Dim i As Integer
For i = Val(TextBox1.Text) To Val(TextBox2.Text)
Cmd.Parameters.AddWithValue("@SahamNumber", i)
Cmd.Parameters.AddWithValue("@SahamVagozriState", False)
Cmd.ExecuteNonQuery()
'Me.TejariSahamNumberTableAdapter.Insert(i, False)
Next


Con.Close()

DS.Clear()
DA.Fill(DS, "TejariSahamNumber")

Mani_rf
جمعه 29 آذر 1392, 11:33 صبح
خودش داره بهت میگه مشکل چیه. تعداد پارامتر هایی که داری به STP میفرستی با تعدادی که توی STP تعریف شده مطابقت نداره. شما باید به همون تعداد که تو STP پارامتر تعریف کردی اینجا پارامتر تعریف کنی و بفرستی. نه کمتر و نه بیشتر

vb341
جمعه 29 آذر 1392, 14:56 عصر
خوب من دوتا پارامتر تعریف کردم و دوتا هم ارسال میکنم . اشکالش چی میتونه باشه ؟

vb341
جمعه 29 آذر 1392, 23:03 عصر
دوستان من با استفاده از کد زیر تونستم مشکل را حل کنم و فقط مساله ای که هست اینه که اگر تعداد رکوردی که میخوام تو بانک ثبت بشه بعنوان مثال از 1 تا 40000 شماره سهام . مدت زمانی حدود 5 دقیقه طول میکشه تعداد خواسته شده در بانک ذخیر ه بشه . میخواستم ببینم روش بهتری میشه اعمال کرد :


Try
Dim i As Integer
For i = Val(TextBox1.Text) To Val(TextBox2.Text)
Cmd = New SqlCommand("StpTejariSahamNumber", Con)
Cmd.CommandType = CommandType.StoredProcedure

Con.Open()
'Cmd.Parameters.AddWithValue("@SahamNumber", i)
'Cmd.Parameters.AddWithValue("@SahamVagozriState", False)
Cmd.Parameters.Add("@SahamNumber", SqlDbType.BigInt).Value = i
Cmd.Parameters.Add("@SahamVagozariState", SqlDbType.Bit).Value = False
Cmd.ExecuteNonQuery()
Cmd.Dispose()
Con.Close()
'Me.TejariSahamNumberTableAdapter.Insert(i, False)
Next
'MessageBox.Show("Ok")
Catch ex As SqlClient.SqlException
MessageBox.Show(ex.Message.ToString)
End Try

Me.TejariSahamNumberTableAdapter.Fill(Me.ChamranDa taSet.TejariSahamNumber)

Hossis
جمعه 29 آذر 1392, 23:10 عصر
Cmd.ExecuteNonQuery() رو بعد از حلقه اعمال کن البته با روش Insert INTO معمولی
به این صورت که Values رو توی حلقه ، تکرار می کنید و اجرای کد اسکیوال رو بعد از اتمام حلقه
توی همون تاپیکی که معرفی کرده بودند، این روش با مثال توضیح داده شده.
مشکل این کد شما اینه که با هر بار اجرا شدن حلقه، کانکشن باز میشه، یک رکورد اضافه شده و مجدد بسته میشه و این خیلی از کارایی برنامه و سیستم کاهش می ده.