我写了一个winForm程序,我要将文本框的值写入到ACCESS数据库中,再从数据库中取出值显示到winForm的DataGridView中。
如下图所示:
因为第一次接触C#,所以能不能请高手们给我写一下C#的winForm中对ACCESS数据库的读写操作,非常感谢。
如下图所示:
因为第一次接触C#,所以能不能请高手们给我写一下C#的winForm中对ACCESS数据库的读写操作,非常感谢。
解决方案 »
- 如何传值给自定义控件?
- datagridview更新不了,使用了分页存储过程,提示关键字‘form'附近有错误
- postback后页面布局被打乱怎么回事?
- 麻烦告诉我这2个结果为什么是这样的?
- 怎么设置datagridview的宽度?????
- 生成图片的问题
- 关于SGIP的连接
- 谁能给我个WINFORM 三级联动菜单的例子啊!(vs2005的)
- 请问:C#中WebBrowser控件如何打开并且自动播放Microsoft PowerPoint[幻灯片]文件??
- VB.NET和C#的相结合的编程问题?(请各位仁兄进来探讨一下)
- C#如何画并且显示动态三维的立方体
- |ZYCWPF| 谁能帮我编译一下csExWB,我下载了源码编译不过 谢谢
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();
}这是我前些天写的个小东西里面用到的,不是很规范。你可以参考一下。
/// 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也可以实现。
那如何将ACC数据库里的信息放到DataGridView里呢?有代码演示吗?
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
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类型的参数要加上‘’