C#如何读写ACCESS数据库?

diypyh 2012-12-11 10:29:19
我写了一个winForm程序,我要将文本框的值写入到ACCESS数据库中,再从数据库中取出值显示到winForm的DataGridView中。
如下图所示:


因为第一次接触C#,所以能不能请高手们给我写一下C#的winForm中对ACCESS数据库的读写操作,非常感谢。
...全文
2033 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
小奋篼 2013-05-24
  • 打赏
  • 举报
回复
我想问一下,我用Access做的数据库,但是最后我们要求生成一个客户端还需要怎么做呀?求高手指点,很急急急呀!!!!!
dota小王子 2013-05-15
  • 打赏
  • 举报
回复
北风吹冷 2013-05-14
  • 打赏
  • 举报
回复
学习啦! 可惜没有完整的代码
北风吹冷 2013-05-14
  • 打赏
  • 举报
回复
学习啦,可惜没有完整的代码
E次奥 2012-12-13
  • 打赏
  • 举报
回复
sql语句的问题。 string sql="inset into test1(name1,age1,info1) values('"+NameT+"','"+ageT+"','"+infoT+"') ;" 或者 string sql=String.Format("inset into test1(name1,age1,info1) values('{0}','{1}','{2}')",NameT,ageT,infoT); string类型的参数要加上‘’
yuandonghuia 2012-12-12
  • 打赏
  • 举报
回复
网上这样的例子多的很啊,
Hauk 2012-12-12
  • 打赏
  • 举报
回复

        private DataTable GetAllData()
        {
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employees.mdb");
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandText = "SELECT * FROM dbo_m_Employee";
            OleDbDataAdapter oda = new OleDbDataAdapter(cmd);
            DataTable dt = new DataTable();
            oda.Fill(dt);
            return dt;
        }
可以用OleDbDataAdapter返回一个DataTable, 然后在界面上拖一个DataGridView, 在后台调用这个查询方法就可以了: this.dataGridView1.DataSource = GetAllData(); 当然,也可以用OleDbDataReader一行一行的读取,封装成List<T>然后给dataGridView1.DataSource
diypyh 2012-12-12
  • 打赏
  • 举报
回复
引用 1 楼 haukwong 的回复:
C# code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 private string getMailOrId(string sqlText, out string full……
引用 2 楼 wyd1520 的回复:
C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071/// <summary> /// AccessDataProvider 的摘要说明。……
引用 3 楼 forrest23 的回复:
C#操作Access数据库--代码三人帮
那如何将ACC数据库里的信息放到DataGridView里呢?有代码演示吗?
听可笑的承诺 2012-12-12
  • 打赏
  • 举报
回复
comcyd 2012-12-12
  • 打赏
  • 举报
回复
Hauk 2012-12-12
  • 打赏
  • 举报
回复
引用 8 楼 diypyh 的回复:
引用 1 楼 haukwong 的回复:C# code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 private string getMailOrId(string sqlT……
没有指定ID参数
diypyh 2012-12-12
  • 打赏
  • 举报
回复
引用 1 楼 haukwong 的回复:
C# code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 private string getMailOrId(string sqlText, out string full……


还是有错啊?





Forrest23 2012-12-11
  • 打赏
  • 举报
回复
本拉灯 2012-12-11
  • 打赏
  • 举报
回复


/// <summary>
	/// AccessDataProvider 的摘要说明。
	/// </summary>
	public class AccessData
	{
		private string ConnectionString;

		public AccessData()
		{
			this.ConnectionString= "Provider=Microsoft.Jet.Oledb.4.0;Data Source="+Application.StartupPath+"\\System\\Tasks.mdb";
		}
		public AccessData(string ConnectionString)
		{
			this.ConnectionString=ConnectionString;
		}


		private OleDbConnection GetOleDbConnection() 
		{
			try 
			{
				return new OleDbConnection(ConnectionString);
			}catch {
			   throw new Exception("Connection String is invalid.");
			}
		}
			
		public static AccessData Instance()
		{
			return new AccessData();
		}

		
		public int FolderInsert(Folder folder)
		{
			string sql="INSERT INTO Folders(FolderName,ParentID) VALUES(@FolderName,@ParentID)";
			OleDbConnection Conn = GetOleDbConnection();
			OleDbCommand Cmd = new OleDbCommand(sql,Conn);
			Cmd.CommandType=CommandType.Text;
			Cmd.Parameters.Add("@FolderName", OleDbType.VarChar).Value =folder.Name;
			Cmd.Parameters.Add("@ParentID", OleDbType.Integer).Value =folder.ParentID;
			Conn.Open();
			Cmd.ExecuteNonQuery();
			Cmd=new OleDbCommand("SELECT @@IDENTITY",Conn);
			int i=(int)Cmd.ExecuteScalar();
			Cmd.Dispose();
			Conn.Close();
			return i;
		}



public ArrayList GetFolders()
		{
			using( OleDbConnection Conn = GetOleDbConnection() ) 
			{
				ArrayList BL= new ArrayList();
				OleDbCommand command = new OleDbCommand("Select * From Folders",Conn);
				Conn.Open();
				OleDbDataReader Dr=command.ExecuteReader();
				while(Dr.Read())
				{
					Folder folder= new Folder();
					folder=PopulateFolderIDataReader(Dr);
					BL.Add(folder);
				}
				Dr.Close();
				Conn.Close();
				return BL;
			}
		}



上面的只是样列。 要么你自己去下一个OleDBHelper也可以实现。
Hauk 2012-12-11
  • 打赏
  • 举报
回复

        private string getMailOrId(string sqlText, out string full_name)
        {
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employees.mdb");
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sqlText;
            conn.Open();
            string userId = string.Empty;
            full_name = string.Empty;
            using (OleDbDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                if (sdr.HasRows)
                {
                    if (sdr.Read())
                    {
                        userId = sdr.GetString(0);
                        full_name = sdr[1] == DBNull.Value ? userId : sdr[1].ToString();
                    }
                }
                sdr.Close();
            }
            conn.Close();
            return userId;
        }

        private void getNewEmp(out string eid, out string email, out string uname)
        {
            eid = string.Empty;
            email = string.Empty;
            uname = string.Empty;
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employees.mdb");
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "SELECT TOP 1 EID,E_mail, First_Name+', '+Last_Name as EName FROM dbo_m_Employee";
            conn.Open();
            using (OleDbDataReader odr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                if (odr.HasRows)
                {
                    if (odr.Read())
                    {
                        eid = odr[0].ToString();
                        email = odr[1].ToString();
                        uname = odr[2] == DBNull.Value ? eid : odr[2].ToString();
                    }
                }
                odr.Close();
            }
            conn.Close();
        }

        private void deleteData(string eid)
        {
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Employees.mdb");
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "delete from dbo_m_Employee where eid='" + eid + "'";
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
        }
这是我前些天写的个小东西里面用到的,不是很规范。你可以参考一下。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧