كود اعادة الترقيم التلقائي - dubai.eig - 15-10-17
السلام عليكم
استفساري بخصوص ككود اعادة الترقيم التلقائي
بعد البحث حصلت هذا الموضوع
http://vb4arb.com/vb/showthread.php?tid=7605
بس الكود ما عمل معاي
يطلع لي الغلط
[attachment=15744]
القاعدة عندي
كود :
CREATE TABLE [DBSetting] (
[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[score] VARCHAR(30) NULL,
[contestn] VARCHAR(200) NULL,
[station_callsign] VARCHAR(50) NULL,
[Exchange_S] VARCHAR(20) NULL,
[Exchange_R] VARCHAR(20) NULL,
[mode] VARCHAR(50) NULL,
[band] VARCHAR(50) NULL,
[contestnyear] VARCHAR(200) NULL,
[Continent] VARCHAR(50) NULL,
[PFX] VARCHAR(50) NULL,
[sn] VARCHAR(20) NULL,
[cqz] VARCHAR(50) NULL,
[itz] VARCHAR(50) NULL
)
وهذا الكود
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If DS.Tables("DBSetting").Rows.Count = 0 Then Beep() : Exit Sub
Try
Application.DoEvents()
Dim cmd As New SQLiteCommand("", Cn)
Cn.Open()
'ID كود حذف المفتاح من حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE DBSetting DROP CONSTRAINT PrimaryKey"
cmd.ExecuteNonQuery()
' ID كود حذف حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE DBSetting DROP COLUMN ID "
cmd.ExecuteNonQuery()
'مع وضع مفتاح له ID كود انشاء حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE DBSetting ADD COLUMN ID COUNTER CONSTRAINT [PrimaryKey] Primary key "
cmd.ExecuteNonQuery()
'تغيير نوعية الحقل من ترقيم تلقائي الى رقم
cmd.CommandText = "ALTER TABLE DBSetting ALTER COLUMN ID Long"
cmd.ExecuteNonQuery()
Cn.Close()
'تحديث قاعدة البيانات
DS.Clear()
DP.Fill(DS, "DBSetting")
Grid()
DataGridView1.AllowUserToAddRows = False
MsgBox("تم بنجاح استعادة تسلسل السجلات", 64 + 524288, "نجاح")
Catch ex As Exception
Cn.Close()
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
الغلط يقولي هنا
كود :
'ID كود حذف المفتاح من حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE DBSetting DROP CONSTRAINT PrimaryKey"
cmd.ExecuteNonQuery()
لا ادري السبب حاولت بس بدون فائده
ان شاءالله احصل الحل وشكرا
RE: كود اعادة الترقيم التلقائي - a.ahmed - 15-10-17
PHP كود :
Dim Sql As String = "SELECT (SELECT COUNT(*) FROM [DBSetting] t WHERE [DBSetting].id >= t.id) AS [RowNumber], * " & _ "FROM [DBSetting] " Dim da As New SQLiteDataAdapter(Sql, con) da.Fill(dt) Me.DataGridView1.DataSource = dt
RE: كود اعادة الترقيم التلقائي - dubai.eig - 15-10-17
(15-10-17, 04:29 PM)a.ahmed كتب : PHP كود :
Dim Sql As String = "SELECT (SELECT COUNT(*) FROM [DBSetting] t WHERE [DBSetting].id >= t.id) AS [RowNumber], * " & _ "FROM [DBSetting] " Dim da As New SQLiteDataAdapter(Sql, con) da.Fill(dt) Me.DataGridView1.DataSource = dt
شكرا لك استاذ احمد بس مكا فهمت وين احط الكود
هذا الكود الموجود عندي
كود :
Imports System.Data.SQLite
Public Class Form4
Dim Cn As New SQLiteConnection(String.Format("Data Source= {0}\BKHAMLOG\contest\" & strcallbk & "\DBDXContest.s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
Dim DS As New DataSet
Dim DP As New SQLiteDataAdapter("Select * from DBSetting", Cn)
Sub Grid()
With DataGridView1
.DataSource = DS
.DataMember = "DBSetting"
.Refresh()
.Columns(0).HeaderText = "id"
.Columns(1).HeaderText = "Serial"
.Columns(1).Width = 50
End With
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DP.Fill(DS, "DBSetting")
Grid()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Sql As String =
"SELECT (SELECT COUNT(*) FROM [DBSetting] t WHERE [DBSetting].id >= t.id) AS [RowNumber], * " & _
"FROM [DBSetting] "
Dim da As New SQLiteDataAdapter(Sql, Cn)
da.Fill(DS)
Me.DataGridView1.DataSource = DS
If DS.Tables("DBSetting").Rows.Count = 0 Then Beep() : Exit Sub
Try
Application.DoEvents()
Dim cmd As New SQLiteCommand("", Cn)
Cn.Open()
'ID كود حذف المفتاح من حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE DBSetting DROP CONSTRAINT PrimaryKey"
cmd.ExecuteNonQuery()
' ID كود حذف حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE DBSetting DROP COLUMN ID "
cmd.ExecuteNonQuery()
'مع وضع مفتاح له ID كود انشاء حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE DBSetting ADD COLUMN ID COUNTER CONSTRAINT [PrimaryKey] Primary key "
cmd.ExecuteNonQuery()
'تغيير نوعية الحقل من ترقيم تلقائي الى رقم
cmd.CommandText = "ALTER TABLE DBSetting ALTER COLUMN ID Long"
cmd.ExecuteNonQuery()
Cn.Close()
'تحديث قاعدة البيانات
DS.Clear()
DP.Fill(DS, "DBSetting")
Grid()
DataGridView1.AllowUserToAddRows = False
MsgBox("تم بنجاح استعادة تسلسل السجلات", 64 + 524288, "نجاح")
Catch ex As Exception
Cn.Close()
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class
هل احط الكود الخاص بك في ال Button1 او كيف اسف تعبتك بس الحمدالله نستفيد منك ومن الشباب الكثير
RE: كود اعادة الترقيم التلقائي - a.ahmed - 15-10-17
PHP كود :
Imports System.Data.SQLite
Public Class Form4 Dim Cn As New SQLiteConnection(String.Format("Data Source= {0}\BKHAMLOG\contest\" & strcallbk & "\DBDXContest.s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))) Dim DT As New DataTable Dim DP As New SQLiteDataAdapter("SELECT (SELECT COUNT(*) FROM [DBSetting] t WHERE [DBSetting].id >= t.id) AS [Serial], * FROM [DBSetting] ", Cn)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DP.Fill(DT) Grid() End Sub
Sub Grid() With DataGridView1 .DataSource = DT .Columns(0).Width = 50 End With End Sub
'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'End Sub
End Class
RE: كود اعادة الترقيم التلقائي - dubai.eig - 15-10-17
(15-10-17, 05:50 PM)a.ahmed كتب : PHP كود :
Imports System.Data.SQLite
Public Class Form4 Dim Cn As New SQLiteConnection(String.Format("Data Source= {0}\BKHAMLOG\contest\" & strcallbk & "\DBDXContest.s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))) Dim DT As New DataTable Dim DP As New SQLiteDataAdapter("SELECT (SELECT COUNT(*) FROM [DBSetting] t WHERE [DBSetting].id >= t.id) AS [Serial], * FROM [DBSetting] ", Cn)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DP.Fill(DT) Grid() End Sub
Sub Grid() With DataGridView1 .DataSource = DT .Columns(0).Width = 50 End With End Sub
'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'End Sub
End Class
شكرا لك ما قصرة احسنت وفي ميزان حسناتك عزيزي
بس اتمنى تاخذ لفه على موضوعي الاخر ListView
|