updata语句:
string sql = "update [jbxxb] set [mc]='" + mc_yyg + "',[dh]='" + dh_yyg + "',[dz]='" + dz_yyg + "' where [ID]=1 ";问题一:“人生如梦”大哥让加上“[]”,但是在下不明白原因?“[]”有什么作用?问题二:数据不能提交到数据库中,怀疑是update语句中的错误。问题三:怀疑和数据库mdb文件所在的文件夹的只读属性有关,但是改不了。而且,文件夹的安全选项的权限是完全控制的。
推测过程:一、提交函数(如下), 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();
}二、数据库表“jbxxb”中的字段
“ID”是自动编号,“mc”、“dh”“dz”等是文本格式的。三、数据库连接函数正确(可以实现查询功能)四、执行SQL命令的函数
///<summary>
///执行SQL语句
///</summary>
///<param name="str">SQL命令</param>
///<returns>返回影响行数</returns>
public int Execute(string str)
{
OleDbCommand Comm = new OleDbCommand(str, Conn);
int R = Comm.ExecuteNonQuery();
Comm.Dispose();
return R;
}小弟在此拜过
string sql = "update [jbxxb] set [mc]='" + mc_yyg + "',[dh]='" + dh_yyg + "',[dz]='" + dz_yyg + "' where [ID]=1 ";问题一:“人生如梦”大哥让加上“[]”,但是在下不明白原因?“[]”有什么作用?问题二:数据不能提交到数据库中,怀疑是update语句中的错误。问题三:怀疑和数据库mdb文件所在的文件夹的只读属性有关,但是改不了。而且,文件夹的安全选项的权限是完全控制的。
推测过程:一、提交函数(如下), 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();
}二、数据库表“jbxxb”中的字段
“ID”是自动编号,“mc”、“dh”“dz”等是文本格式的。三、数据库连接函数正确(可以实现查询功能)四、执行SQL命令的函数
///<summary>
///执行SQL语句
///</summary>
///<param name="str">SQL命令</param>
///<returns>返回影响行数</returns>
public int Execute(string str)
{
OleDbCommand Comm = new OleDbCommand(str, Conn);
int R = Comm.ExecuteNonQuery();
Comm.Dispose();
return R;
}小弟在此拜过
如果有的话,Access中的日期字段不能用单引号,而是应该用#号!!
怎样跟踪,设断点了,没发现什么错误。一楼:恩,不出错但不能更新。四楼:ID”是自动编号,“mc”、“dh”“dz”等是文本格式的。五楼:连接函数。
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();
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="tsleyyg.Properties.Settings.tsleyygConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\App_Data\tsleyyg.mdb;Persist Security Info=True"
providerName="System.Data.OleDb" /> 这个是干嘛的,原来没有啊。 </connectionStrings>
<appSettings>
<add key="connString" value="Data Source=App_Data\tsleyyg.mdb"/> 连接字符串“connString” </appSettings>
</configuration>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="tsleyyg.Properties.Settings.tsleyygConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\App_Data\tsleyyg.mdb;Persist Security Info=True"
providerName="System.Data.OleDb" />
</connectionStrings>
<appSettings>
<add key="connString" value="Data Source=App_Data\tsleyyg.mdb"/>
</appSettings>
</configuration>
没有错误提示啊。 现在就已经用了啊access.Dispose(); public void Dispose()
{
if (ds != null)
{
ds.Clear();
}
if (dt != null)
{
dt.Clear();
}
if (Conn != null)
{
Conn.Close();
}
}
改成“Data Source=\..\..\tsleyyg.mdb;”
并把tsleyyg.mdb文件移到App_Data目录的上一级目录。
连接字符串:<appSettings>
<add key="connString" value="Data Source=App_Data\tsleyyg.mdb"/>
</appSettings>下面这个也是在app.config中的<connectionStrings>
<add name="tsleyyg.Properties.Settings.tsleyygConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\App_Data\tsleyyg.mdb;Persist Security Info=True"
providerName="System.Data.OleDb" />
</connectionStrings> 这是一个什么东西?把它注释了一样可以实现查询功能,貌似没什么用。
把下面的:
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\App_Data\tsleyyg.mdb;Persist Security Info=True"
改成:
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\..\tsleyyg.mdb;Persist Security Info=True"
关闭时,选保存。
=========================
上面也可在项目属性-设置中改
跟踪得到的sql语句在数据库中执行是否正确?