gpt4 book ai didi

c# - 向 MDB 插入和更新数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:27 26 4
gpt4 key购买 nike

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

ID
INFO
TEXT
  • 根据 ID 显示数据 = 成功了
  • 根据ID=问题改变数据
  • 添加新数据 = 问题

显示数据适用于此代码:

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 中插入新数据并更新已有数据?

最佳答案

工作代码

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 { }
}
}
}

关于c# - 向 MDB 插入和更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com