Jag hämtar hem ett dataset ifrån min webservice, inga problem. att tabellen i databasen har en primärnyckel har ingenting med tabellen i DataSettet att göra. Du måsta konfa rätt kolumn som PK även där. Jag såg att jag hadde tänkt felOm dataset & C#
Att visa datan går väldigt bra, men nu vill jag kunna manupilera datan.
<code>
DataSet myData = new DataSet();
xmlDoc = sPath + sApplication+".xml";
myData.ReadXml(xmlDoc);
DataRow myDataRow1 = myData.Tables[0].Rows.Find("id");
MessageBox.Show(myData.Tables[0].Rows[0]["inlagg"].ToString());
</code>
Error:
<info>
System.Data.MissingPrimaryKeyException was unhandled
Message="Tabellen har ingen primärnyckel."
Source="System.Data"
StackTrace:
vid System.Data.DataTable.FindByPrimaryKey(Object value)
vid System.Data.DataRowCollection.Find(Object key)
vid SAWregistrering.Form1.button4_Click(Object sender, EventArgs e) i H:\C#\SAWregistrering\SAWregistrering\SAWregistreringForm1.cs:rad 763
vid System.Windows.Forms.Control.OnClick(EventArgs e)
vid System.Windows.Forms.Button.OnClick(EventArgs e)
vid System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
vid System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
vid System.Windows.Forms.Control.WndProc(Message& m)
vid System.Windows.Forms.ButtonBase.WndProc(Message& m)
vid System.Windows.Forms.Button.WndProc(Message& m)
vid System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
vid System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
vid System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
vid System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
vid System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.
IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
vid System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
vid System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
vid System.Windows.Forms.Application.Run(Form mainForm)
vid SAWregistrering.Program.Main() i H:\C#\SAWregistrering\SAWregistrering\SAWregistrering\Program.cs:rad 17
vid System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
vid System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
vid Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
vid System.Threading.ThreadHelper.ThreadStart_Context(Object state)
vid System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
vid System.Threading.ThreadHelper.ThreadStart()
</info>
..och detta stämmer inte, den har en primärnyckel, eller är det någonting som jag har missat???Sv: Om dataset & C#
Sv:Om dataset & C#
<code>
myData.Tables[0].Rows.Find(Convert.ToInt32(listVal.Text));
</code>
men jag får samma fel, jag tror inte att jag förstod vad du menade.
[REDIGERAT]
Nu fungerar deleten.
<code>
xmlDoc = sPath + sApplication.Replace("t_","") +".xml";
myData.ReadXml(xmlDoc);
myData.Tables[0].Rows.RemoveAt(listVal.SelectedIndex);
listVal.Items.RemoveAt(listVal.SelectedIndex);
myData.WriteXml(xmlDoc);
</code>
Men hur gör jag nu när det gäller att uppdatera ett dataset, och sedan skicka över det till webservicen
och uppdatera databasen???