2013-02-28 105 views
1

我試圖刪除基於我的主鍵tidMS Access的DataType TEXT的記錄。但問題是,它不會被刪除。因爲刪除DataType的字段沒有問題int。任何原因?字段tid是我的主要關鍵。無法從MS Access刪除特別是「TEXT」類型的記錄

我犯了一個錯誤,使其類型TEXT,現在想要將其轉換爲int(以編程方式)?不更改MS Access數據庫並再次綁定它?

如果需要,請索取代碼。 任何形式的幫助將不勝感激。

按@Scotch的要求編輯: 這是代碼片斷給我的問題。

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click 
     Dim delcmd As New OleDbCommand("delete from teacher where tid=" & TextBox1.Text & " ", conaccess) 
     delcmd.ExecuteNonQuery() 
     MsgBox("Record is deleted") 
     loadGrid() 
     TextBox1.Clear() 
     TextBox2.Clear() 

     loadGrid() 
    End Sub 

是因爲,其他的插入操作運行得很好:

例子:

Dim access As String = String.Format("INSERT INTO teacher (tid,tname,dept,type) VALUES('{0}','{1}','{2}','{3}')", TextBox1.Text, TextBox2.Text, ComboBox2.Text, ComboBox1.Text) 
    concmd.Connection = conaccess 
    concmd.CommandText = access 
    concmd.ExecuteNonQuery() 
    MsgBox("Record Successfully Saved") 
    loadGrid() 
    TextBox1.Clear() 
    TextBox2.Clear() 
+0

你是什麼意思記錄沒有被刪除?你想刪除'field' tid,還是試圖刪除一個基於它的'tid'的記錄? – Scotch 2013-02-28 04:18:02

+0

你可以先右擊它並關閉主鍵,然後刪除它嗎? – cardmagik 2013-02-28 04:18:56

+0

@蘇格蘭哦,我的壞!我的意思是基於'tid'的記錄。將編輯。謝謝。 – smithesh 2013-02-28 04:20:49

回答

0

由於您的TID字段是text,你需要在你的delete語句的報價。

Dim delcmd As New OleDbCommand("delete from teacher where tid='" & TextBox1.Text & "'", conaccess) 

如果您想要將字段類型更改爲數字,則可以這樣做。它會警告你,但是如果你在每個記錄的tid字段中只有數字字符,它就會正常工作。

+0

謝謝,我會盡力讓你知道的。 – smithesh 2013-02-28 04:59:50

+0

是的,我認爲它會解決它,但沒有任何承諾, – Scotch 2013-02-28 05:00:11

+0

非常感謝你。工作完美。所以簡單的錯誤!天哪!謝謝!! :)沒有足夠的rept。給你一個+1,但還是謝謝:) – smithesh 2013-02-28 05:10:42