تو دکمه ثبت بیا شرط بذار که اگه تکس باکس جنسیت خالی بود اررور بده اینجوری :
If TxtGensiyat.Text = String.Empty Then
MsgBox("نوع جنسیت را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtGensiyat.Focus()
Exit Sub
End If
اینجا اگه خالی باشه تکس باکس جنسیت اررور میده و روش فوکوس میکنه تا وارد کنید
یا علی
داداشی سرچ کن تو انجمن هست . من اضافه کردن یه تیبل از دیتابیس رو به کمبو باکس میذارم . باقیش با خودت . چون خودم کار نکردم روش هنوز داداشی .
Private Sub CboNoeMahsol()
'// tabee farakhani select 1 field az jadval db be combobox , DISTINCT : bedon tekrar
con = New SqlConnection(My.Settings.conn)
'// age con ma baste bod ono baz mikone
If con.State = ConnectionState.Closed Then
con.Open()
End If
Dim da As New SqlDataAdapter("select Distinct Name from TableShoma", con)
Dim ds As New DataTable
da.Fill(ds)
ComboName.DataSource = ds
ComboName.DisplayMember = "Name"
'// age con ma baz bod ono mibande
If con.State = ConnectionState.Open Then
con.Close()
End If
End Sub
بعدش تو Combo مورد نظر که قراره اطلاعات ما نشون داده شه این تابع رو فراخوانی می کنیم با Call اینجوری
1
2
3
Private Sub ComboNameMahsol_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboNameMahsol.DropDown
Call CboNoeMahsol()
End Sub
سلام بچه ها . خو خودمم درگیر این بودم که چرا اررور باز بودن دیتابیس میده وقتی کار انجام شده یا بیشتر از 1 بار رو دکمه جستجو یا بروز رسانی یا هرچیزی کلیک میشه .
1 نمونش تو فرم ویرایش اطلاعات وقتی رو جستجو کلیک میکنید و بروز رسانی میزنید دفعه دیگه که کلیک میکنه اررور میده که همه رو وارد کنید اگه برید تو کد و قسمت آخر Catch رو به این تغییر بدید تا اررور رو بفهمید اینجوری :
Catch ex As Exception
MsgBox(ex.Message)
End Try
خو حالا واسه رفع مشکلمون من اول میام چک میکنم که اگه Connection من بسته بود اونو باز کنم .
بعد کارامو انجام بدم موقع دریافت اطلاعات یا همون Query از Sql میام شرط بذارم که اگه Connection ما وضعیتش همچنان باز بود بیا خروجی بده .
بعد که خروجی داد بیام Connection رو ببندم .
اینم کدش تو دکمه سرچ :
If TxtTell.Text = String.Empty Then
MsgBox("تلفن شخص را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtTell.Focus()
Exit Sub
End If
If TxtTell.TextLength > 0 Then
If con.State = ConnectionState.Closed Then
con.Open()
End If
cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT Fname,Lname,Address,Gen FROM TblRegister WHERE(Tell=@Tell)"
cmd.Parameters.Add("@Tell", SqlDbType.NVarChar, 50).Value = TxtTell.Text
'con.Open()
If con.State = ConnectionState.Open Then
Dim sReader As SqlDataReader = cmd.ExecuteReader()
If sReader.Read() Then
TxtName.Text = sReader.GetValue(0).ToString()
TxtLName.Text = sReader.GetValue(1).ToString()
TxtAddress.Text = sReader.GetValue(2).ToString()
TxtGen.Text = sReader.GetValue(3).ToString()
con.Close()
Else : MessageBox.Show("پیدا نشد")
End If
End If
End If
اینم کدش تو دکمه بروز رسانی :
Try
If con.State = ConnectionState.Closed Then
con.Open()
End If
cmd.CommandText = "UPDATE TblRegister SET Fname=@Fname,Lname=@Lname,Address=@Address,Gen=@Ge n WHERE(Tell=@Tell)"
cmd.Parameters.Add("@Fname", SqlDbType.NVarChar, 50).Value = TxtName.Text
cmd.Parameters.Add("@Lname", SqlDbType.NVarChar, 50).Value = TxtLName.Text
cmd.Parameters.Add("@Address", SqlDbType.NVarChar, 500).Value = TxtAddress.Text
cmd.Parameters.Add("@Gen", SqlDbType.NVarChar, 50).Value = CboGen.Text
'con.Open()
If con.State = ConnectionState.Open Then
Dim count As Integer
count = cmd.ExecuteNonQuery()
If count > 0 Then
MessageBox.Show("بروز رسانی شد")
con.Close()
Else : MessageBox.Show("اطلاعات مورد نظر پیدا نشد")
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
همه پروژه هاتونم میتونید از این 2تا تیکه کد استفاده کنید .
با سلام از آقا بهروز و اموزش مفيدشان
ايا تو sql server express 2008 امكان داره كه پشتيبان فول - و همچنين از تراكنشها بصورت اتومات انجام بشه
ممنون
با سلام از آقا بهروز و اموزش مفيدشان
ايا تو sql server express 2008 امكان داره كه پشتيبان فول - و همچنين از تراكنشها بصورت اتومات انجام بشه
ممنون
سلام دوست من منظورت رو نفهمیدم .
ولی اگه منظورت پشتیبان گیری از بانک خودته که تو بخش Backup & Restore تو بخش Sql server این فروم موجوده .
به صورت اتوماتیک کردنشم که فقط 1 تایمر میخواد که تو تایم مشخص اینکار انجام شه . ولی تو نرم افزار ها باید بعد از دستور خروج از برنامت اینکار انجام بشه .
وقتی بکاپ گرفت بعد برنامه بسته شه اینجوری :
Dim s As String
s = MsgBox("آیا مایل به خروج از برنامه هستید؟ ", MsgBoxStyle.YesNo + MsgBoxStyle.Question, Title:="هشدار")
If s = vbYes Then
Try
Dim cnn As New SqlConnection("Data Source=(local);Initial Catalog=Sardkhone;Integrated Security=True")
Dim cmd As New SqlCommand
cnn.Open()
Dim query As String = "BACKUP DATABASE [Sardkhone] TO DISK =N'E:\Sardkhone.BAK'"
cmd.CommandText = query
cmd.Connection = cnn
cmd.ExecuteNonQuery()
MsgBox("پشتیبانگیری با موفقیت صورت گرفت")
cnn.Close()
Catch ex As Exception
MsgBox("مشکل در پشتیبان گیری")
End Try
End
End If
این دستور اول میگه میخواید خروج شید یا نه اگه کاربر بله رو بزنه بکاپ میگیره و دیتابیس منو تو درایو E میریزه . هربارم روش آپدیت میکنه .
اگه میتونی متغیرش کن به فولدر خود برنامه و فایل زیپشم بکن . من هنز وقت نکردم روش کار کنم . تا حالا هم روش کار نکردم . ولی جستجو کن پره.
یا حق
سلام
چون دیتابیس توسط sql در حال استفاده است نمیشه کپی کرد
اول باید روی نام دیتابیس در sql کلیک راست کنی و گزینه Dettach رو بزنی بعد میشه کپی کرد
بعد از کپی دوباره باید روی Database کلیک راست کنی و Attach Database رو بزنی و با انتخاب دیتابس مورد نظر دوباره فعالش کنی تا در sql و برنامه ات قابل استفاده باشه
من توصیه می کنم جهت انتقال یک دیتابیس به یک Sql دیگه ازش Backup بگیری و در مقصد Restore کنی مراحلش کمتره و همون کار رو برات میکنه
موفق باشید
با سلام
نسخه Express با Enterprise تفاوت چندانی در عملکردهای پایه ای نداره فقط قدرتش کمتره و امکانات اضافی رو نداره
Backup اتوماتیک رو میتونید در قسمت Maintnance Plan در sql تعریف کنید تا در زمانهای مورد نظر شما و در محل مورد نظر شما Backup بگیره
توصیه می کنم عوض پرسیدن سوالهای جزئی و گرفتن جوابهای ناقصی مثل جواب من ، حتما یک کتاب Sql Server رو کامل بخونید خیلی به دردتون میخوره
موفق باشید
داداش سوالتو خیلی خیلی بد پرسیدی که من اصلا نفهمیدم .
الان که دیدم دوستم توضیح داده متوجه شدم.
آره تو Sql Server 2008 امکان Backup گیری ( پشتیبان گیری ) از دیتابیس به صورت خودکار یا اتوماتیک ( Auto ) وجود داره .
واسه اینکار روی دیتابیست توی برنامه Sql Server 2008 راست کلیک کن و Task و بعدشم Backup رو بزن . همه چیز واضحه ولی بازم بهت میگم.
1 - اسم دیتابیستو واسه بکاپ انتخاب کن
2- نوعشو که کامل باشه یا نه
3 - کل دیتابیستو میخوای یا فایل ها و دیتاهاشو
4- تعیین میکنی که بعد از چند روز یا چه روزی به صورت خودکار بکاپ بگیره
5 - مسیر زخیره سازی بکاپ دیتابیس رو مشخص میکنید.
backup1.jpg
6- منوی آپشن های اضافی تنظیمات بکاپتونه.
7- فایلهای قبلی رو نگه میداره و اطلاعات جدید رو توش میریزه ( حجم دیتابیس بعد هر بار بکاپ حتی اطلاعات وارد نکنی 2 برابر میشه )
8 - اطلاعات جدید رو به جای قبلی جایگزین میکنه ( روش صحیح بکاپ اینه )
9 - قسمت اررور های بکاپه که اولیش بعد بکاپ دوباره چک میکنه بکاپو ، سومی هم میگه اررور رو بیخیال شو و ادامه بده بره
backup2.jpg
سوال رو واضح بپرسید لطفا خواهشا.
یا حق
سلام
چجوری میشه جدولمونو ویرایش کنیم؟
جدول کجاتو داداشه من ؟؟؟ دیتابیس رو میگی ؟؟؟ توی Sql server 2008 روی دیتابیست دابل کلیک کن باز که شد روی Tables کلیک کن و Table مورد نظر رو روش راست کلیک کن و Design رو واسه طراحی ، اضافه یا کم و زیاد کردن فیلد هاش استفاده کن و از Show 200 Row رو واسه دیدن 200 رکورد ثبت شده خودت استفاده کن بعد که اطلاعاتتو دیدی ویرایش یا حذف کن
یا حق
آقا بهروز سلام . د رعبارت لایک که شما برای جستجو گذاشتین اگر مقدار یک فیلد عدد باشه خطا میگیریه . تغییری در دستور باید داد ؟توی تکس باکس روی تکس باکس تلفن دابل کلیک کنید و تو رویداد TextChanged اون کد زیر رو واسه فیلتر کردن بر حسب شماره تلفن بنویسید :
TblRegisterBindingSource.Filter = "Tell Like '*" & TxtTell.Text & "*'"
آقا بهروز منظور من اینه که نوع فیلد در دیتابیس عددی باشه نه اینکه شما در شماره تلفن عدد وارد کرده باشین .
چون زمانیکه بادستور شما یک فیلد عددی جستجو میشه از DataType اون اشکال میگیره . لطفا یک بررسی مجدد بفرمائید
داداشی این تست شدست . اررورش رو بفرست . چون اگه نوع فیلدش رو عدد یا چیز دیگه میذاشتم تو گزارش گیری مشکل ساز بود واسم .
بچه ها کسه دیگه این مشکل رو داره ؟؟؟
با سلام
ارور در خصوص نوع دیتا هست . الان پروه دم دستم نیست و در اداره و در محل کارمه .
ولی عرض کردم . نوع دیتای من در بانک از نوع bigint هست و این دستور شما از نوع دیتا اشکال میگیره . چون دستور شما نوع استرینگ رو برمیگردونه
دوست من ، پروژه در اختیار شماست . دیتابیس هم که دارید .
من نوع رو Nvarchar گذاشتم فکر کنم بازم نمیدونم . الان دم دست ندارم تو Pc ایمه . ولی یادمه که موقع نوشتن وقتی نوع int یا BigInt رو سرچ میکردم به مشکل میخوردم .
Int که 11 عدد میگیره .
BigInt خوبه . ولی فکر کنم Bigint باشه هااا . بازم چک میکنم .
ولی Nvarchar خوبیش اینه که میشه +98 گذاشت دوست من . واسه این گذاشته بودم . ولی بازم چک میشه
دوستان با سلام من یک سوال فنی دارم
با ویژوال بیسیک دات نت 2008 پروژه ای نوشتم که قسمتی از وظیفه آن تهیه کپی پشتیبان و بازیابی اطلاعات در است
بازیابی توسط یک query در یک شئی command انجام میشه به فرم Restore Database [Dbname] From [BackupFileName] کلی مشکل داشتم که حل شد تا اونجا که دیگه خطا نگرفت اما بعد از restore کردن پیام میده که نمی تونی به این پایگاه داده login کنی (یادآوری می کنم که backup از یک سیستم انجام شده اما restore باید در سیستم دیگری انجام شود (مثلا backup از سیستمی در شمال شهر و restore به سیستم دیگری در جنوب شهر) منظورم اینکه سیستمها هیچ ارتباطی با هم ندارند . بانک هاشون عیناً یکی است فقط نام سیستمها (سرورهاشون) فرق داره
واقعا دمت گرم...........
خیلی عالی بود.من هم سه سوال داشتم اون هم این بود که وقتی فایل دیتابیس طراحی شد و بخوایم در شبکه ازش استفاده کنیم مثلا 5-6 سیستم باید اونو توی یه پوشه شییر شده بذاریم و دایرکتوری کانکشن استرینگ رو هم به ادرس پوشه شییر شده تغییر بدیم.ایا این روش درسته؟ یا روش بهتری برای شبکه هست؟
و دومین سوال: برای انتقال به سیستم مشتری گفتین که engin sql کافیه از نظر حجم فایل نصبیش چقدر هست و ایا حتما برای sql2008 دات نت 4 لازمه چون برناممو با دات نت 2 نوشتم به جهت کاهش حجم فایل ستاپ برا دانلودش؟؟؟؟؟
دوباره ازتون بخاطر وقتتی که گذاشتین تشکر می کنم!!!!!!