2010-08-25 11 views
13

i erhalten hat die folgende Ausnahme (fehlende Primärschlüssel) in der Linie der Suche() -MethodeTabelle keinen Primärschlüssel

„Tabelle keinen Primärschlüssel hat.“

Ich habe die Datenbank erneut überprüft und alle Primärschlüsselspalten sind korrekt eingestellt.

mein Code:

DataTable dt = p.GetAllPhotos(int.Parse(Id)); 
DataTable temp = new DataTable(); 
temp = dt.Clone(); 
temp = (DataTable)(Session["currentImage"]); 
DataTable dtvalid = new DataTable(); 
dtvalid = dt.Clone(); 
DataRow[] drr = new DataRow[1]; 
drr[0] = dt.Rows.Find((int.Parse(temp.Rows[0]["photoId"].ToString()))+1); 
foreach (DataRow dr in drr) 
{ 
    dtvalid.ImportRow(dr); 
} 
dtvalid.AcceptChanges();' 
+0

Was Sie zum Teufel zu erreichen versuchen finden nennen? –

Antwort

29

Sie benötigen die PrimaryKey Eigentum Ihrer Datatable Objekt zu setzen, bevor Sie

DataColumn[] keyColumns = new DataColumn[1]; 
keyColumns[0] = dt.Columns["<columnname>"]; 
dt.PrimaryKey = keyColumns; 
+0

Vielen Dank, das ist die Lösung. Ich denke, das ist ähnlich, wenn wir die Datenschlüssel Name Eigenschaft für einige Steuerelemente in ASP.net identifizieren sollten –

+0

Seien Sie vorsichtig, dass Sie den Spaltennamen korrekt kopieren. Ich hatte DemoKey_pk im Code, aber die gespeicherte Prozedur gab DemoKey_fk zurück. Da DemoKey_pk nicht zurückgegeben wurde (DemoKey_fk war/ist), hat mein Code die Ausnahme "Tabelle hat keinen Primärschlüssel" ausgelöst. – user2197446

Verwandte Themen