110,571
社区成员
发帖
与我相关
我的任务
分享
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
/// <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也可以实现。
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();
}
这是我前些天写的个小东西里面用到的,不是很规范。你可以参考一下。