错误:连接属性尚未初始化
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
System.Data.OleDb.OleDbConnection con;
DataSet ds1;
System.Data.OleDb.OleDbDataAdapter da;
int MaxRows = 0;
int inc = 0;
private void Form1_Load(object sender, EventArgs e)
{
con = new System.Data.OleDb.OleDbConnection();
ds1 = new DataSet();
con.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/MyWorkers1.mdb";
string sql = "SELECT * from tblWorkers";
da = new System.Data.OleDb.OleDbDataAdapter(sql, con);
con.Open();
da.Fill(ds1, "MyWorkers1");
NavigateRecords();
MaxRows = ds1.Tables["MyWorkers1"].Rows.Count;
//MaxRows = ds1.Tables["MyWorkers1"].Rows[inc];
//MessageBox.Show("Database open");
con.Close();
//MessageBox.Show("Database close");
con.Dispose();
}
private void NavigateRecords()
{
DataRow drow = ds1.Tables["MyWorkers1"].Rows[inc];
textBox1.Text = drow.ItemArray.GetValue(0).ToString();
textBox2.Text = drow.ItemArray.GetValue(1).ToString();
textBox3.Text = drow.ItemArray.GetValue(2).ToString();
}
private void btnNext_Click(object sender, EventArgs e)
{
if (inc != MaxRows - 1)
{
inc++;
NavigateRecords();
}
else
{
MessageBox.Show("No More Records");
}
}
private void btnPrevious_Click(object sender, EventArgs e)
{
if (inc > 0)
{
inc--;
NavigateRecords();
}
else
{
MessageBox.Show("First Record");
}
}
private void btnFirst_Click(object sender, EventArgs e)
{
if (inc != 0)
{
inc = 0;
NavigateRecords();
}
}
private void btnLast_Click(object sender, EventArgs e)
{
if (inc != MaxRows - 1)
{
inc = MaxRows - 1;
NavigateRecords();
}
}
private void btnAddNew_Click(object sender, EventArgs e)
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}
private void btnSave_Click(object sender, EventArgs e)
{
System.Data.OleDb.OleDbCommandBuilder cb;
cb = new System.Data.OleDb.OleDbCommandBuilder(da);
DataRow drow = ds1.Tables["MyWorkers1"].NewRow();
drow[0] = textBox1.Text;
drow[1] = textBox2.Text;
drow[2] = textBox3.Text;
ds1.Tables["MyWorkers1"].Rows.Add(drow);
MaxRows = MaxRows + 1;
inc = MaxRows - 1;
da.Update(ds1, "MyWorkers1");
MessageBox.Show("Record/Entry Added");
}
}
}
当我运行这个它显示像"Invalid Operation - Exception Unhandled connection property has not been initialized."
错误:连接属性尚未初始化
什么是错的错误?
我不是专家,但尽量
con = new System.Data.OleDb.OleDbConnection(you_connection_string);
例外的情况是很清楚的。 ConnectionString属性尚未“正确”设置, 尝试调用时打开SqlConnection对象。
您是否尝试过在web.config中创建一个?
我不使用asp.net //我使用Windows应用程序C#2008和msaccess – premkumar 2011-04-08 23:35:56
您可以检查您的ConnectionString是否有效这里:http://www.connectionstrings.com/
注意,供应商不同的是,关于您正在使用的版本的.mdb(2007年,2000 ......)
由方式,你想尝试Source = D:\ MyWorkers1.mdb而不是Source = D:/ MyWorkers1?用“\”代替“/”。
我正在研究相同的例子,并认为con.Dispose();
即表单负载不允许da.Update(ds1, "MyWorkers1");
更新记录。所以目前我已经把它移走了,但是最好把它移到销毁/卸载等等(我真的不知道在关闭表格之前哪个是正确的事件)
哪里出现异常(即哪个线)。 – Justin 2011-04-08 06:11:23
da.Update(ds1,“MyWorkers1”); //在这一行错误显示//请帮助我 – premkumar 2011-04-08 11:10:11
Source = D:\ MyWorkers1.mdb而不是Source = D:/ MyWorkers1? – Larry 2011-04-08 11:59:24