25. marts 2005 - 12:24
Der er
15 kommentarer og 1 løsning
Få C# til at gemme data i en Assecc Databse
Hej ! Jeg trækker data fra en Access Databse og viser dem i et DataGrid, men jeg vil gerne kunne gemme ændringer i tabellen. Er der en der gider forklare mig hvordan man gør - helst gerne skåret ud i pap - er nemlig ikke så stiv i C#.
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
25. marts 2005 - 12:26
#1
Du kan bede din data adapter om at gemme ændringer. Eksempel: using System; using System.Data; using System.Data.OleDb; using System.Drawing; using System.Windows.Forms; namespace DefaultNamespace { public class MainForm : Form { private DataGrid dg; private Button save; private OleDbConnection con; private OleDbDataAdapter da; private OleDbCommandBuilder cb; private DataSet ds; public static void Main() { MainForm fMainForm = new MainForm(); fMainForm.ShowDialog(); } public MainForm() { InitializeComponent(); } private void InitializeComponent() { con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Database\\MSAccess\\Test.mdb;"); con.Open(); da = new OleDbDataAdapter("SELECT * FROM T1", con); cb = new OleDbCommandBuilder(da); da.UpdateCommand = cb.GetUpdateCommand(); ds = new DataSet(); da.Fill(ds, "T1"); dg = new DataGrid(); save = new Button(); SuspendLayout(); dg.Location = new Point(50, 50); dg.Size = new Size(300, 200); dg.SetDataBinding(ds, "T1"); save.Location = new Point(50, 300); save.Size = new Size(100, 25); save.Text = "Save"; save.Click += new EventHandler(SaveClick); ClientSize = new Size(400, 400); Controls.Add(dg); Controls.Add(save); Text = "Main Form"; ResumeLayout(false); } void SaveClick(object sender, EventArgs e) { da.Update(ds, "T1"); ds.AcceptChanges(); dg.Refresh(); } } }
25. marts 2005 - 12:28
#2
vil det sige at jeg bare skal lave det click event? SaveClick?
25. marts 2005 - 12:32
#3
Eller på anden vis kalde data adapterens Update metode. Husk dog at data adapteren skal have InsertCommand, UpdateCommand og DeleteCommand. OleDbCommandBuilder bør lave dem, men hvis det driller så assigner du manuelt som i mit eksempel
25. marts 2005 - 12:33
#4
Okay - jeg er med vildt godt eksempel. Selv sådan en som mig fatter det! Jeg takker. Hvordan får du dine point?
25. marts 2005 - 12:34
#5
jeg ligger et svar
25. marts 2005 - 12:36
#6
Har du fået point nu?
25. marts 2005 - 12:39
#7
No Du skal markere mit navn så det bliver blåt ude i combo boxen og så klikke accepter
25. marts 2005 - 12:55
#8
Hvordan skal jeg gøre, hvis jeg vil ændre data, som jeg viser i en textbox istedet?
25. marts 2005 - 13:53
#9
Du assigner bare fra din TextBox til et sted i dit DataSet !
25. marts 2005 - 14:21
#10
Jeg har lavet en Databind til et sted i mit dataset .. Det er ikke det du mener vel? Jeg vil jo gerne ændre den data jeg får vist ..
25. marts 2005 - 14:24
#11
Selvom du har bindet dit data grid til dit data set mener jeg godt at du kan opdatere direkte i data set (men du skal nok kalde Refresh metoden på data set).
25. marts 2005 - 14:31
#12
Jeg har lavet følgende click event: private void button3_Click(object sender, System.EventArgs e) { daHaVideo.Update(dsHaVideo1, "Kunder"); dsHaVideo1.AcceptChanges(); textBox1.Refresh(); } Og data bliver ændret midlertidigt i textboxen, men ikke gemt "permanent"..
25. marts 2005 - 14:35
#13
Øh Den kode har vel ikke noget med hverken dit spørgsmål eller mit svar ar gøre ? click kaldes den assigner fra TextBox'en til et sted inde i DataSet'et du kalder Update + Accept + Refresh (og Refresh på din DataGrid ikke på din TextBox)
25. marts 2005 - 14:51
#14
Jeg kan godt få det til at virke med et DataGrid .. Jeg vil gerne lave det samme nummer med en textbox. Hvordan gør jeg det?
25. marts 2005 - 14:53
#15
Præcis som beskrevet ovenfor bare uden DataGrid Refresh.
25. marts 2005 - 15:00
#16
Jeg har startet en anden tråd - hvis du besvarer der så kan du også få point :)
http://www.eksperten.dk/spm/603453 Jeg kan bare ikke helt forstå det ... som sagt er jeg ikke så hård til C#...
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.