تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
عندي مشكلة في قاعدة البيانات
#1
السلام عليكم يا اخوان عندي شكلة في قاعدة البيانات و هي انه يرفض التحديث و يرسل لي

إن توليد SQL بشكل ديناميكي لـ DeleteCommand غير معتمد مقابل SelectCommand الذي لا يُرجع معلومات أي عمود مفتاح.

يا ليت تساعدوني
الرد
تم الشكر بواسطة:
#2
وعليكم السلام

أهلا أخي SonBasel

أرجوا منك وضع تفاصيل أكثر وصور توضح شكل الجدول والأوامر التي تستخدمها 

بهذة الطريقة نحتاج ساحر لمعرفة المشكلة.
الرد
تم الشكر بواسطة: essawq , essawq , 911 , 911 , محمود صالح , محمود صالح , elgokr , elgokr
#3
إذا لم يخب ظني أن الجدول لا يحتوي على مفتاح أساسي ( primary key )

إذا كان لا يوجد مفتاح أساسي في الجدول ( لن تستطيع إنشاء أوامر الحذف + التحديث ) بشكل ديناميكي
الرد
تم الشكر بواسطة: 911 , 911 , elgokr
#4
(15-09-18, 11:50 PM)عبدالله الدوسري كتب : إذا لم يخب ظني أن الجدول لا يحتوي على مفتاح أساسي ( primary key )

إذا كان لا يوجد مفتاح أساسي في الجدول ( لن تستطيع إنشاء أوامر الحذف + التحديث ) بشكل ديناميكي


أو قد يكون يحتوي على مفتاح ولكنه استعلم بأعمدة محددة لم يكن بين بينها عمود المفتاح.
مثل
كود :
SELECT FirstName, LastName From Employees
الرد
تم الشكر بواسطة: elgokr
#5
(16-09-18, 12:07 AM)911 كتب :
(15-09-18, 11:50 PM)عبدالله الدوسري كتب : إذا لم يخب ظني أن الجدول لا يحتوي على مفتاح أساسي ( primary key )

إذا كان لا يوجد مفتاح أساسي في الجدول ( لن تستطيع إنشاء أوامر الحذف + التحديث ) بشكل ديناميكي


أو قد يكون يحتوي على مفتاح ولكنه استعلم بأعمدة محددة لم يكن بين بينها عمود المفتاح.
مثل
كود :
SELECT FirstName, LastName From Employees

انا معرف primary key  مع ظهور الصفحه و ما اتوقع ذا الشي ياثر و محدده في الاستعلام

(15-09-18, 11:50 PM)عبدالله الدوسري كتب : إذا لم يخب ظني أن الجدول لا يحتوي على مفتاح أساسي ( primary key )

إذا كان لا يوجد مفتاح أساسي في الجدول ( لن تستطيع إنشاء أوامر الحذف + التحديث ) بشكل ديناميكي
يوجد primary key
الرد
تم الشكر بواسطة: elgokr
#6
وعليكم السلام ورحمة الله وبركاته

فضلاً وليس امراً 
بدلاً من التعامل مع التخمين
قم بوضع الاكواد المستخدمة
وصورة لما يظهر لديك من مشكلة
حتى نتمكن من وضع الرد المناسب فيما لديك من مشكلة

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
#7
(17-09-18, 09:31 AM)elgokr كتب :
وعليكم السلام ورحمة الله وبركاته

فضلاً وليس امراً 
بدلاً من التعامل مع التخمين
قم بوضع الاكواد المستخدمة
وصورة لما يظهر لديك من مشكلة
حتى نتمكن من وضع الرد المناسب فيما لديك من مشكلة

تحياتى لك
وتمنياتى لك التوفيق
كود :
 Try
           Dim row As DataRow = DT.Rows.Find(ID.Value)

           If row Is Nothing Then

               MsgBox("هذا العمل غير موجود", MsgBoxStyle.Exclamation, "الحذف")

           Else

               row.Delete()
               cmdb = New SqlCommandBuilder(Adapter)
               Adapter.Update(DT)
               MsgBox("تمت عملية الحذف بنجاح", MsgBoxStyle.Information, "الحذف")
             
           End If
       Catch ex As Exception
        (MsgBox(ex.Message
       End Try
اسف توقعت اني مرسلها من امس بس طلع النت علق و ما ارسلها
الرد
تم الشكر بواسطة: elgokr
#8
يا ريت توضيح اكثر ويفضل وضع جميع الاكواد لان المشكلة التي ذكرتها اغلب اسبابها
هو المفتاح الرئيسي بالجدول الذي من خلاله تتم عمليات النحديث والحذف
الرد
تم الشكر بواسطة: elgokr
#9
(17-09-18, 09:38 PM)aljzazy كتب :
كود :
Imports System.Data.SqlClient
Public Class WatchList

   Dim sqlcon As New SqlConnection("server=desktop-8ao3o4k\mssqlserver2017; database=DB_WatchList; Integrated security=true")
   'تنفيذ
   Dim Adapter As SqlDataAdapter
   'تخزين
   Dim DT As New DataTable

   Dim cmdb As SqlCommandBuilder

   Private Sub WatchList_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

       DGV.BackgroundColor = Me.BackColor

       Dim query As String = "select ID, Name ,Eps ,TimeTike ,DateStr, DateEnd from TBL_WatchList"
       Adapter = New SqlDataAdapter("select * from TBL_WatchList", sqlcon)

       Adapter.Fill(DT)

       Me.DGV.DataSource = DT

       DGV.Columns(0).HeaderText = "رقم العمل"
       DGV.Columns(1).HeaderText = "اسم العمل"
       DGV.Columns(2).HeaderText = "عدد الحلقات"
       DGV.Columns(3).HeaderText = "الوقت المستغرق"
       DGV.Columns(4).HeaderText = "وقت البدايه"
       DGV.Columns(5).HeaderText = "وقت الانتهاء"

       DGV.Columns(0).Width = 80
       DGV.Columns(1).Width = 330
       DGV.Columns(2).Width = 80
       DGV.Columns(3).Width = 100
       DGV.Columns(4).Width = 100
       DGV.Columns(5).Width = 100

       'ID.Value = 0
       'txtName.Clear()
       'NumEps.Value = 1
       'NumTime.Value = 20
       'DateStr.Value = Now.Date
       'DateEnd.Value = Now.Date

       ' نخليه الممنوع التكرر
       DT.Constraints.Add("primary", DT.Columns("ID"), True)

   End Sub

   Private Sub btnAdd_Click(sender As System.Object, e As System.EventArgs) Handles btnAdd.Click
       '  add()

       Try

           Dim row As DataRow = DT.NewRow

           row(0) = ID.Value
           row(1) = txtName.Text
           row(2) = NumEps.Value
           row(3) = NumTime.Value
           row(4) = DateStr.Value
           row(5) = DateEnd.Value

           DT.Rows.Add(row)
           cmdb = New SqlCommandBuilder(Adapter)
           Adapter.Update(DT)
           MsgBox("تمت الاضافة بنجاح", MsgBoxStyle.Information, "الاضافة")

           txtName.Clear()
           ID.Value = ID.Value + 1
           NumEps.Value = 1
           NumTime.Value = 20
           DateStr.Value = Now.Date
           DateEnd.Value = Now.Date
           txtName.Focus()

       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

   End Sub

   Dim oldID As Integer

   Private Sub btndel_Click(sender As System.Object, e As System.EventArgs) Handles btndel.Click
       Try
           Dim row As DataRow = DT.Rows.Find(ID.Value)

           If row Is Nothing Then

               MsgBox("هذا العمل غير موجود", MsgBoxStyle.Exclamation, "الحذف")

           Else

               row.Delete()
               cmdb = New SqlCommandBuilder(Adapter)
               Adapter.Update(DT)
               MsgBox("تمت عملية الحذف بنجاح", MsgBoxStyle.Information, "الحذف")
               txtName.Clear()
               NumEps.Value = 1
               NumTime.Value = 20
               DateStr.Value = Now.Date
               DateEnd.Value = Now.Date
               txtName.Focus()
           End If
       Catch ex As Exception
           MsgBox(ex.Message,MsgBoxStyle.Exclamation,"خطأ")
       End Try

   End Sub


   '  Sub add()

   '  End Sub

   Private Sub ID_ValueChanged(sender As System.Object, e As System.EventArgs) Handles ID.ValueChanged
       Try
           If ID.Value = Nothing Then

               ID.Value = 1
           Else
               Dim row As DataRow = DT.Rows.Find(ID.Value)
               If row IsNot Nothing Then
                   oldID = row(0)
                   txtName.Text = row(1)
                   NumEps.Value = row(2)
                   NumTime.Value = row(3)
                   DateStr.Value = row(4)
                   DateEnd.Value = row(5)
               ElseIf (ID.Value <> oldID) Then
                   txtName.Clear()
                   NumEps.Value = 1
                   NumTime.Value = 20
                   DateStr.Value = Now.Date
                   DateEnd.Value = Now.Date
               End If
           End If
       Catch ex As Exception
           'MsgBox(ex.Message)
       End Try
   End Sub

   Private Sub btnEdit_Click(sender As System.Object, e As System.EventArgs) Handles btnEdit.Click

       Try
         
           Dim row As DataRow = DT.Rows.Find(oldID)

           row(0) = ID.Value
           row(1) = txtName.Text
           row(2) = NumEps.Value
           row(3) = NumTime.Value
           row(4) = DateStr.Value
           row(5) = DateEnd.Value
           cmdb = New SqlCommandBuilder(Adapter)
           Adapter.Update(DT)

           MsgBox("تمت عملية التحديث", MsgBoxStyle.Information, "التحديث")
           ID.Value = +1
           txtName.Clear()
           NumEps.Value = 1
           NumTime.Value = 20
           DateStr.Value = Now.Date
           DateEnd.Value = Now.Date
           txtName.Focus()

       Catch ex As Exception

       End Try

   End Sub

End Class
يا ريت توضيح اكثر ويفضل وضع جميع الاكواد لان المشكلة التي ذكرتها اغلب اسبابها
هو المفتاح الرئيسي بالجدول الذي من خلاله تتم عمليات النحديث والحذف

مو فاهم قصدك بالتوضيح لكن ذا الاكواد كلها
الرد
تم الشكر بواسطة: elgokr
#10
الكود الذي وضعتة لا يشرح شيء في شكل الجدول الموجود في قاعدة البيانات

برجاء ضع صورة لشكل الجدول الموجود في قاعدة البيانات ( شكل التصميم  ) لو سمحت.

طولتها على نفسك وهي قصيرة

صورة وحدة بس
الرد
تم الشكر بواسطة: elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اجمالى الفواتير فى قاعدة البيانات atef_020 9 119 16-01-19, 11:14 PM
آخر رد: atef_020
  [سؤال] مشكلة في كود الحفظ عاشق الرسول 10 178 16-01-19, 02:43 AM
آخر رد: عاشق الرسول
  [VB.NET] ;سؤال كيفية تعديل المدخلات في (الداتا قريد فيو ) قبل الحفظ في قاعدة البيانات EYADISMAIL 4 137 16-01-19, 01:26 AM
آخر رد: EYADISMAIL
  مشكلة عند ترحيل البيانات الي اكسل nooralcown 1 64 14-01-19, 02:30 AM
آخر رد: اسامه الهرماوي
  لماذا يحدث مشكلة عند فتح الفورم ShowDialog new_programer 7 170 13-01-19, 10:20 PM
آخر رد: أسامة السالمي
  إضافة حقول DateTimePicker الى قاعدة البيانات Hamoody 0 54 12-01-19, 02:21 AM
آخر رد: Hamoody
  مشكلة ظهور مفاجيء للأخطاء عند تصدير الداتاجريدفيو كملف PDF ..[تم الحل] Hazem1 0 61 08-01-19, 11:48 AM
آخر رد: Hazem1
  طريقة تكرار الامر تلقائيا | حل مشكلة script error في webbrowser عند فتح صفحة ما soloxocf1 0 59 08-01-19, 07:05 AM
آخر رد: soloxocf1
  [VB.NET] مساعدة في كود حفظ البيانات Hamoody 6 144 07-01-19, 05:54 PM
آخر رد: elgokr
  [سؤال] اريد كود يختار سجل من جدول في قاعدة البيانات عشوائيا ويعرض في النموذج abdalla89 7 928 07-01-19, 04:31 PM
آخر رد: elgokr

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم