在下在此先谢过各位大侠,在下纠结了一天了,就是没有发现错误在哪里,而更新数据的功能不可以实现。一:数据库表“jbxxb”,其中的字段“ID”是自动编号,“mc”、“dh”“dz”等是文本格式的。二:app.config中的连接字符串
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
</connectionStrings>
<appSettings>
<add key="connString" value="Data Source=App_Data\tsleyyg.mdb"/>
</appSettings>
</configuration>
三:数据库连接函数
public AccessDB()
{
string connectionString="";
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
connectionString =connectionString + @System.Configuration.ConfigurationSettings.AppSettings["connString"].ToString();
Conn = new OleDbConnection(connectionString);
Conn.Open();
}
四:提交数据函数
private void YYGSZ_Click(object sender, EventArgs e)
{
//提交信息
string mc_yyg = MC_YYG.Text;
string dh_yyg = DH_YYG.Text;
string dz_yyg = DZ_YYG.Text;
string sql = "UPDATE jbxxb SET mc = '" + mc_yyg + "', dh = '" + dh_yyg + "', dz = '" + dz_yyg + "' WHERE id = 1";
AccessDB access = new AccessDB();
int add = access.Execute(sql);
if (add > 0)
{
MessageBox.Show("提交成功", "提示框");
}
else
{
MessageBox.Show("提交失败", "提示框");
}
access.Dispose();
}
五:SQL命令执行函数
public int Execute(string str)
{
OleDbCommand Comm = new OleDbCommand(str, Conn);
int R = Comm.ExecuteNonQuery();
Comm.Dispose();
return R;
}
六:释放资源函数
///<summary>
///释放系统资源,断开与数据库的连接
///</summary>
public void Dispose()
{
if (ds != null)
{
ds.Clear();
}
if (dt != null)
{
dt.Clear();
}
if (Conn != null)
{
Conn.Close();
}
}问题:找不到出错的地方,数据无法提交入数据库。“update”中的参数加上"[]"注意一:数据库连接应该没有问题。因为可以从数据库中读取数据。
代码如下:
private void Qywh_Load(object sender, EventArgs e)
{
//初始化信息
string sql = "select * from jbxxb where id=1";
AccessDB access = new AccessDB();
DataTable dt=access.FillDt(sql);
if(dt!=null&&dt.Rows.Count>0)
{
MC_YYG.Text =dt.Rows[0]["mc"].ToString();
DH_YYG.Text = dt.Rows[0]["dh"].ToString();
DZ_YYG.Text = dt.Rows[0]["dz"].ToString();
}
access.Dispose(); }
注意二:跟数据库文件“tsleyyg.mdb”所在的文件夹的权限有没有关系,它是只读的,但是改不过来。不过该文件夹的属性的安全选项卡中是“完全控制的权限”。而数据库文件“tsleyyg.mdb”不是只读属性。在下纠结了一天了,还请各位大侠多多指教,找出错误的原因
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
</connectionStrings>
<appSettings>
<add key="connString" value="Data Source=App_Data\tsleyyg.mdb"/>
</appSettings>
</configuration>
三:数据库连接函数
public AccessDB()
{
string connectionString="";
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
connectionString =connectionString + @System.Configuration.ConfigurationSettings.AppSettings["connString"].ToString();
Conn = new OleDbConnection(connectionString);
Conn.Open();
}
四:提交数据函数
private void YYGSZ_Click(object sender, EventArgs e)
{
//提交信息
string mc_yyg = MC_YYG.Text;
string dh_yyg = DH_YYG.Text;
string dz_yyg = DZ_YYG.Text;
string sql = "UPDATE jbxxb SET mc = '" + mc_yyg + "', dh = '" + dh_yyg + "', dz = '" + dz_yyg + "' WHERE id = 1";
AccessDB access = new AccessDB();
int add = access.Execute(sql);
if (add > 0)
{
MessageBox.Show("提交成功", "提示框");
}
else
{
MessageBox.Show("提交失败", "提示框");
}
access.Dispose();
}
五:SQL命令执行函数
public int Execute(string str)
{
OleDbCommand Comm = new OleDbCommand(str, Conn);
int R = Comm.ExecuteNonQuery();
Comm.Dispose();
return R;
}
六:释放资源函数
///<summary>
///释放系统资源,断开与数据库的连接
///</summary>
public void Dispose()
{
if (ds != null)
{
ds.Clear();
}
if (dt != null)
{
dt.Clear();
}
if (Conn != null)
{
Conn.Close();
}
}问题:找不到出错的地方,数据无法提交入数据库。“update”中的参数加上"[]"注意一:数据库连接应该没有问题。因为可以从数据库中读取数据。
代码如下:
private void Qywh_Load(object sender, EventArgs e)
{
//初始化信息
string sql = "select * from jbxxb where id=1";
AccessDB access = new AccessDB();
DataTable dt=access.FillDt(sql);
if(dt!=null&&dt.Rows.Count>0)
{
MC_YYG.Text =dt.Rows[0]["mc"].ToString();
DH_YYG.Text = dt.Rows[0]["dh"].ToString();
DZ_YYG.Text = dt.Rows[0]["dz"].ToString();
}
access.Dispose(); }
注意二:跟数据库文件“tsleyyg.mdb”所在的文件夹的权限有没有关系,它是只读的,但是改不过来。不过该文件夹的属性的安全选项卡中是“完全控制的权限”。而数据库文件“tsleyyg.mdb”不是只读属性。在下纠结了一天了,还请各位大侠多多指教,找出错误的原因
解决方案 »
- 请教一个.htaccess文件解析的问题
- c#_winform_datagridview单元格合并
- GDAL/OGR GEOS库协同工作
- 关于内存地址的问题!大家来看看
- 我在面试中的题,谢谢各位大侠来帮帮小弟<求教授的生日是什么日期,最好讲述理论过程>,谢谢!
- 急..求救..请大侠们帮帮忙..谢啦...
- 我是新手,请教一个数组的问题!
- [-请教-]如何将EXCEL中已有的数据赋给一个字符串变量?
- 我有一个厂家提供的dll,他有很多方法,我怎么声明和使用
- 关于在发VS.NET中用ASP访问数据库的问题?
- c# + ext 的查询并分页显示?
- 用C#上传Excel表到SQL Server数据库中。在线等!!!
使用OleDbParameter[] parameters = {
new OleDbParameter("@mc ", OleDbType.VarChar,255),
new OleDbParameter("@dh", OleDbType.VarChar,255)};
parameters[0].Value = mc;
更新看看
打一断点,得到UPDATE语句
谢谢您。
是不是把<add name="accessConnStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= |DataDirectory|a.mdb" providerName="System.Data.OleDb"/> 加到app.config中就行了。使用OleDbParameter[] parameters = {
new OleDbParameter("@mc ", OleDbType.VarChar,255),
new OleDbParameter("@dh", OleDbType.VarChar,255)};
parameters[0].Value = mc;这是什么意思?在下用的数据库是ACCESS啊
AccessDB access = new AccessDB();
int add = access.Execute(sql);
=======================================
把你的access.Execute的方法贴出来看看
上面有啊:五:SQL命令执行函数
public int Execute(string str)
{
OleDbCommand Comm = new OleDbCommand(str, Conn);
int R = Comm.ExecuteNonQuery();
Comm.Dispose();
return R;
}
OleDbParameter
主要是update语句
有很多access数据库操作类
类是这样,我的mdb是放在d:盘的,直接写
public class AccessDB
{
OleDbConnection Conn;
public AccessDB()
{
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\db1.mdb";
Conn = new OleDbConnection(connectionString);
Conn.Open();
}
public int Execute(string str)
{
OleDbCommand Comm = new OleDbCommand(str, Conn);
int R = Comm.ExecuteNonQuery();
Comm.Dispose();
return R;
}
}
谢谢你们。就是这样的,其实信息已经改过来了。把mdb文件放在解决方案中了,其实debug下数据库文件已经改变了。真是,呵呵。纠结了一天