这是一个关于excel导入C#并保存到数据库里的项目。读取是没有问题了,当时保存时总是出错,总是在 coon.Open();说:ConnectionString 属性尚未初始化;超级无敌郁闷的,找了好久都不知道错在哪里!!请各位帮帮忙啊......
本来是以为没定义变量,或是命名空间有误,但还是不行
快救救我啊,各位英雄!!~~
using System.Data.OleDb;
using System.Data.Common;
using System.Data.SqlClient;
string strSource;
internal void open()
{ }
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string conString = openFileDialog1.FileName;
string strSource = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + conString + "; Extended Properties =Excel 8.0";
OleDbConnection conn = new OleDbConnection(strSource);
string sqlstring = @"SELECT * FROM [Sheet1$]";
OleDbDataAdapter adapter = new OleDbDataAdapter(sqlstring, conn);
DataSet da = new DataSet();
adapter.Fill(da);
this.dataGridView1.DataSource = da.Tables[0];
}
} private void button2_Click(object sender, EventArgs e)
{
using (OleDbConnection conn = new OleDbConnection(strSource))
{
OleDbCommand cmd = new OleDbCommand("select 学号,身份证号,姓名,系别,专业,年级,班别,证书编号,证书类别,级别,评定成绩,考试届数 from [Sheet1$]", conn);
conn.Open();
using (DbDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
string sqlconnectionstring = "Data Source=.;Initial Catalog=ym;Integrated Security=True;uid=sa;";
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlconnectionstring))
{
bulkCopy.DestinationTableName = "证书获取表";
bulkCopy.WriteToServer(dr);
dr.Close();
dr.Dispose();
MessageBox.Show("保存成功");
}
}
}
}
}
本来是以为没定义变量,或是命名空间有误,但还是不行
快救救我啊,各位英雄!!~~
using System.Data.OleDb;
using System.Data.Common;
using System.Data.SqlClient;
string strSource;
internal void open()
{ }
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string conString = openFileDialog1.FileName;
string strSource = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + conString + "; Extended Properties =Excel 8.0";
OleDbConnection conn = new OleDbConnection(strSource);
string sqlstring = @"SELECT * FROM [Sheet1$]";
OleDbDataAdapter adapter = new OleDbDataAdapter(sqlstring, conn);
DataSet da = new DataSet();
adapter.Fill(da);
this.dataGridView1.DataSource = da.Tables[0];
}
} private void button2_Click(object sender, EventArgs e)
{
using (OleDbConnection conn = new OleDbConnection(strSource))
{
OleDbCommand cmd = new OleDbCommand("select 学号,身份证号,姓名,系别,专业,年级,班别,证书编号,证书类别,级别,评定成绩,考试届数 from [Sheet1$]", conn);
conn.Open();
using (DbDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
string sqlconnectionstring = "Data Source=.;Initial Catalog=ym;Integrated Security=True;uid=sa;";
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlconnectionstring))
{
bulkCopy.DestinationTableName = "证书获取表";
bulkCopy.WriteToServer(dr);
dr.Close();
dr.Dispose();
MessageBox.Show("保存成功");
}
}
}
}
}
解决方案 »
- Could not get JDBC Connection的问题,请高手指点一下,谢谢!!!
- C#数据库插入语句,如果插入有HTML标记的内容,不使用转义,插入出错
- 经常看到程序里有 类似 e.index 这样的命令
- 网页中播放ppt 文件
- 初学者 急急急急 ! 在C#中如何对数据库进行insert update delete 操作。
- 自己独立开发的简单搜索引擎C#,欢迎测试!!!
- 写数据时,如果关键字重复,应该采用什么形式?
- 为啥线程不同时运行?
- 在.net2003中,为什么 水晶报表的”字段资源管理器打不开“,而在.net2002中可以打开
- 郁闷session 高分求助
- 写一个C#程序测试调用方法的时间
- SqlParameter怎么用的。看文档看不懂
SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlconnectionstring)
那你要看看SqlBulkCopy类的构造函数定义了。
using (OleDbConnection conn = new OleDbConnection(strSource))
{
OleDbCommand cmd = new OleDbCommand("select 学号,身份证号,姓名,系别,专业,年级,班别,证书编号,证书类别,级别,评定成绩,考试届数 from [Sheet1$]", conn);
conn.Open();
using (DbDataRea
你在button2_Click方法中用strSource做连接字符串,但是这个变量不是全局的呀!
你的strSource是在这里定义的,所以这是问题的原因吧!
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string conString = openFileDialog1.FileName;
string strSource = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + conString + "; Extended Properties =Excel 8.0";
{
SqlCommand myCommand = new SqlCommand("SELECT * FROM Tb", conn);
conn.Open();
SqlDataReader reader = myCommand.ExecuteReader(); using (SqlConnection conn2= new SqlConnection(connectionString))
{
conn2.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn2.ConnectionString))
{
}
}
}
sqlCmd.Connection = conn;//加上这两句 string sqlstring = @"SELECT * FROM [Sheet1$]";
开始时我已经定义了 string strSource;
是在Button外定义的全局变量啊,应该是没有错的~~
添加了,但出现了新的问题:无法将类型“System.Data.OleDb.OleDbConnection”隐式转换为“System.Data.SqlClient.SqlConnection”
根据你所给的代码,我进行了修改,但还是出现了一样的问题!或许是配置的问题,我打开了 app.config
其代码如下:
<connectionStrings>
<add name="统计报表.Properties.Settings._20082330124ConnectionString"
connectionString="Data Source=127.0.0.1;Initial Catalog=20082330124;User ID=sa"
providerName="System.Data.sqlClient" />
</connectionStrings>
我的数据库名称为:20082330124 ID是sa
providerName="System.Data.sqlClient"应该是没有错的
以上代码是自动生成的啊真的是不知道报错的原因