将数据插入和更新到MDB [英] Inserting and Updating data to MDB

查看:119
本文介绍了将数据插入和更新到MDB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试制作一个简单的测试程序,该程序可以打开MDB文件并执行3个基本操作 MDB有 3个字段,它们都是文本:

I'm trying to make a simple test program that can open MDB files and do 3 basic things the MDB have 3 fields, all of them are text:

ID
INFO 
TEXT

  • 根据ID =显示数据可以正常工作
  • 根据ID =问题更改数据
  • 添加新数据=问题
  • show数据与此代码兼容:

    the show data works with this code:

    con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = c:\\mdb\\testmdb.mdb");
    cmd = new OleDbCommand();
    cmd.Connection = con;
    cmd.CommandText = "select Info, text from Table1 where ID = '" + int.Parse(textBox1.Text) + "' ";
    con.Open(); // open the connection
    OleDbDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
      textBox2.Text = dr["Info"].ToString();
      textBox3.Text = dr["text"].ToString();
    }
    con.Close();
    

    如何在MDB中插入新数据并更新已有的数据?

    How do I insert new data in MDB and update data I already have?

    推荐答案

    工作代码

    using System;
    using ADOX;
    using System.Data.OleDb;
    using System.Data;
    using System.IO;
    
    namespace ConsoleApplication4
    {
    class Program
    {
        static void Main(string[] args)
        {
            CreateMdb("toster_ru.mdb");
            string fileNameWithPath = Environment.CurrentDirectory + "\\toster_ru.mdb";
    
            CreateTableInToMdb(fileNameWithPath);
            InsertToMdb(fileNameWithPath);
            UpdateToMdb(fileNameWithPath);
    
            var myDataTable = new DataTable();
            using (var conection = new OleDbConnection("Provider = Microsoft.JET.OLEDB.4.0;  Data Source = " + fileNameWithPath))
            {
                conection.Open();
                var query = "Select info From my_table";
                var adapter = new OleDbDataAdapter(query, conection);
                adapter.Fill(myDataTable); 
                Console.WriteLine(myDataTable.Rows[0][0].ToString()); //output: toster2.ru
                Console.ReadKey();
            }
        }
    
        static void CreateMdb(string fileNameWithPath)
        {
            if (File.Exists(fileNameWithPath))
                return;
    
            Catalog cat = new Catalog();
            string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Jet OLEDB:Engine Type=5";
            cat.Create(String.Format(connstr, fileNameWithPath));
            cat = null; 
        }
    
        static void InsertToMdb(string fileNameWithPath)
        {
            var con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + fileNameWithPath);
            var cmd = new OleDbCommand();
            cmd.Connection = con;
            cmd.CommandText = "insert into my_table (ID, [Info], [text])  values (@ID, @Info, @text);";
            cmd.Parameters.AddWithValue("@ID", 1);
            cmd.Parameters.AddWithValue("@Info", "toster.ru");
            cmd.Parameters.AddWithValue("@text", "blabla");
            con.Open(); 
            cmd.ExecuteNonQuery();
            con.Close();
        }
    
        static void UpdateToMdb(string fileNameWithPath)
        {
            var con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + fileNameWithPath);
            var cmd = new OleDbCommand();
            cmd.Connection = con;
            cmd.CommandText = "UPDATE my_table SET [Info] = ?, [text] = ? WHERE ID = ?;";
            cmd.Parameters.AddWithValue("@p1", OleDbType.VarChar).Value = "toster2.ru";
            cmd.Parameters.AddWithValue("@p2", OleDbType.VarChar).Value = "blabla2";
            cmd.Parameters.AddWithValue("@p3", OleDbType.VarNumeric).Value = 1;
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }
    
        static void CreateTableInToMdb(string fileNameWithPath)
        {
            try
            {
                OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + fileNameWithPath);
                myConnection.Open();
                OleDbCommand myCommand = new OleDbCommand();
                myCommand.Connection = myConnection;
                myCommand.CommandText = "CREATE TABLE my_table([ID] NUMBER, [Info] TEXT, [text] TEXT)";
                myCommand.ExecuteNonQuery();
                myCommand.Connection.Close();
            }
            catch { }
        }
    }
    }
    

    这篇关于将数据插入和更新到MDB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆