C# 连接access,运行时老师报错,找不到文件bin\debug\信息.mdb

qq_27797121 2015-04-29 09:25:52
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace 开发数据库应用程序
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string strcn = "provider=microsoft.jet.oledb.4.0;data source=|DataDirectory|\\信息.mdb";
OleDbConnection cn = new OleDbConnection(strcn);
if (textBox1.Text.Trim() == "" || comboBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || dateTimePicker1.Text.Trim() == ""||maskedTextBox1.Text.Trim()==""||textBox3.Text.Trim()=="")
MessageBox.Show("请将录入数据填写完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
{
string sql1 = string.Format("insert into 个人信息表(学号,姓名,性别,年龄,生日,联系地址) values('{0}','{1}','{2}','{3}','{4}','{5}')", this.textBox1.Text.Trim(), this.comboBox1.Text.Trim(),this.textBox2.Text.Trim(), this.dateTimePicker1.Text.Trim(),this.maskedTextBox1.Text.Trim(),this.textBox3.Text.Trim());

cn.Open();
OleDbCommand cmd = new OleDbCommand(sql1, cn);
cmd.ExecuteNonQuery();
cn.Close();
MessageBox.Show("录入成功!", "恭喜");
}
}

private void button2_Click(object sender, EventArgs e)
{
string strcn = "provider=microsoft.jet.oledb.4.0;data source=|DataDirectory|\\信息.mdb";
OleDbConnection cn = new OleDbConnection(strcn);
cn.Open();
string sql2 = string.Format("update 个人信息表 set 学号='{0}',姓名='{1}',性别='{2}',年龄='{3}',生日='{4}',联系地址='{5}' WHERE 学号='{6}';", this.textBox1.Text.Trim(), this.comboBox1.Text.Trim(), this.textBox2.Text.Trim(), this.dateTimePicker1.Text.Trim(), this.maskedTextBox1.Text.Trim(), this.textBox3.Text.Trim(), this.Tag.ToString());
OleDbCommand cmd = new OleDbCommand(sql2, cn);
cmd.ExecuteNonQuery();
MessageBox.Show("修改成功!", "恭喜");
}

private void button3_Click(object sender, EventArgs e)
{
string strcn = "provider=microsoft.jet.oledb.4.0;data source=|DataDirectory|\\信息.mdb";
OleDbConnection cn = new OleDbConnection(strcn);
cn.Open();
string sql3 = string.Format("delete * FROM 个人信息表 WHERE 学号='{0}';", this.textBox1.Text.Trim());
OleDbCommand cmd = new OleDbCommand(sql3, cn);
cmd.ExecuteNonQuery();
MessageBox.Show("删除成功!", "恭喜");
}

private void button4_Click(object sender, EventArgs e)
{
this.textBox1.Text = "";
this.comboBox1.Text = "";
this.textBox2.Text = "";
this.dateTimePicker1.Text = "";
this.maskedTextBox1.Text = "";
this.textBox3.Text = "";
}

private void Form1_Load(object sender, EventArgs e)
{
if (this.Text == "个人信息录入")
{
this.button1.Visible = true;
this.button2.Visible = false;
this.button3.Visible = false;
this.button4.Visible = true;
}
if (this.Text == "个人信息修改")
{
this.button1.Visible = false;
this.button2.Visible = true;
this.button4.Visible = false;
this.button3.Visible = false;
string strcn = "provider=microsoft.jet.oledb.4.0;data source=|DataDirectory|\\信息.mdb";
OleDbConnection cn = new OleDbConnection(strcn);
try
{
string sql2 = string.Format("SELECT 个人信息表.* FROM 个人信息表 WHERE 学号='{0}';", this.Tag.ToString());

this.Tag.ToString();
cn.Open();
OleDbCommand cmd = new OleDbCommand(sql2, cn);
OleDbDataReader dr;
dr = cmd.ExecuteReader();
dr.Read();
this.textBox1.Text = dr[0].ToString();
this.comboBox1.Text = dr[1].ToString();
this.textBox2.Text = dr[2].ToString();
this.dateTimePicker1.Text = dr[3].ToString();
this.maskedTextBox1.Text = dr[4].ToString();
this.textBox3.Text = dr[5].ToString();
}
catch
{
MessageBox.Show("没有该学号!", "对不起");
return;
}
finally
{
cn.Close();
}
}
}
}
}
...全文
395 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dangdaa 2015-05-08
  • 打赏
  • 举报
回复
你没有选择楼上说的始终复制那个吧。或者自己改下路径,用完整的
VcLuoPneg 2015-05-05
  • 打赏
  • 举报
回复
对于 access 数据库 ,请使用物理文件路径. 具体使用 Server.MapPath() 方法.
htjs0011 2015-05-05
  • 打赏
  • 举报
回复
你的路径不是绝对路径
  • 打赏
  • 举报
回复
你的路径不是绝对路径,程序会按相对路径去找,改成绝对路径就可以了
mirrorspace 2015-05-05
  • 打赏
  • 举报
回复
文件确实存在,而且路径也对.调试应该没问题. 发布之后出问题可能是无权访问那个文件夹,要加上IIS账号
拜一刀 2015-04-30
  • 打赏
  • 举报
回复
你是从文件根目录的相对路径找的mdb吧,没把他放到debug目录就找不到. 把mdb文件添加到项目里,项目里找到然后在属性里设置:复制到输出目录:复制
myhope88 2015-04-30
  • 打赏
  • 举报
回复
路么不正确吧,或者该路径下没有这个数据库文件
  • 打赏
  • 举报
回复
不要修改你原来的程序。在你的vs的解决方案树上找到这个mdb文件,点鼠标右键选择“属性”,打开属性窗口。 然后,将“设置到输出目录”设置为“如果较新则复制”,并将“生成操作”设置为“内容”。
qi_daohongyuen 2015-04-30
  • 打赏
  • 举报
回复
建立Access数据库连接 private void Frm_Main_Load(object sender, EventArgs e) { string ConStr = string.Format(//设置数据库连接字符串 @"Provider=Microsoft.Jet.OLEDB.4.0;Data source='{0}\test.mdb'", Application.StartupPath);//codego.net/1/1/1/ OleDbConnection oleCon = new OleDbConnection(ConStr);//创建数据库连接对象 OleDbDataAdapter oleDap = new OleDbDataAdapter(//创建数据适配器对象 "select * from 帐目", oleCon); DataSet ds = new DataSet();//创建数据集 oleDap.Fill(ds, "帐目");//填充数据集 this.dataGridView1.DataSource =//设置数据源 ds.Tables[0].DefaultView; oleCon.Close();//关闭数据库连接 oleCon.Dispose();//释放连接资源 }
勇敢的老散户 2015-04-29
  • 打赏
  • 举报
回复
又是一年毕业季
-小蕾- 2015-04-29
  • 打赏
  • 举报
回复
|DataDirectory|会被自动解析到App_Data。路径是不是正确的? 另外需要机器上有在Microsoft.Jet.OLEDB.4.0这个组件,一般装了.net环境以后都有 还需要注意在64位IIS上,可能需要将应用程序池设置为32位模式,或者(7以上版本)设置为允许运行32为应用程序
正宗熊猫哥 2015-04-29
  • 打赏
  • 举报
回复
先放固定路径下,比如"F:\\SBSK\\att2000.mdb" ,程序成功后 然后看下你的 string strcn = "provider=microsoft.jet.oledb.4.0;data source=|DataDirectory|\\信息.mdb"; 跟踪结果是什么,确保路径正确
Justin-Liu 2015-04-29
  • 打赏
  • 举报
回复
你那个路径下有mdb数据库文件吗?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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