各位老師,請教一下。
以下代碼是從資料庫匯出到excel中的代碼。從access匯出沒有問題。但從SQL匯出則報錯,提示<指定的架構名稱“Excel 8.0;database=……..”不存在,或者您沒有使用該名稱的權限>
不知道什么原因,折騰了好久沒除錯出來,盼望老師們指教。
另外,如果我想打開一個指定的excel,并把datagridview里的某些值賦值到指定單元格,最后以textbox1的內容作為excel名進行保存。這個代碼該如何寫嗎?
盼教導~~~
private void button20_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(constr);
try
{
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = ("Excel 檔案(*.xls)|*.xls");//指定檔案后綴名為Excel 檔案。
if (saveFile.ShowDialog() == DialogResult.OK)
{
string filename = saveFile.FileName;
int index = filename.LastIndexOf("//");//獲取最后一個/的索引
filename = filename.Substring(index + 1);//獲取excel名稱(新建表的路徑相對于SaveFileDialog的路徑)
string sql = "select top 65536 * into [Excel 8.0;database=" + filename + "].[用戶資訊] from DL"; //如果是匯出篩選后結果,可后面加上條件: where ID between 4 and 10";
SqlCommand com = new SqlCommand(sql, con);
con.Open();
com.ExecuteNonQuery();
MessageBox.Show("匯出資料成功", "匯出資料", MessageBoxButtons.OK, MessageBoxIcon.Information);
System.Diagnostics.Process.Start(filename.ToString()); //打開excel
}
}
uj5u.com熱心網友回復:
沒這么玩過,你把 [Excel 8.0;database=" + filename + "]改成這個試試看
MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;DATABASE=
uj5u.com熱心網友回復:
還是不行呀,一樣的報錯資訊,說什么指定的架構名稱不存在uj5u.com熱心網友回復:
insert into openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=D:\1.xls',[Sheet1$]) select * from test
uj5u.com熱心網友回復:
你用Sql的command執行insert到excel里?跨資料庫可以理解,這跨系統的操作能成功?uj5u.com熱心網友回復:
老師,系統還是報錯哈:無法創建鏈接服務器null的OLEDB訪問借口microsoft.jet.oledb 4.0的實體
uj5u.com熱心網友回復:
用在access資料庫里是可以的,而且速度很快。但SQL資料庫就不行,不知道為什么。
或者,有其他更好的方法嗎?求指教
uj5u.com熱心網友回復:
那個同是office里邊的,本就許多地方兼容可以互導的,sql和excel不是一個體系,報錯就不奇怪了。
uj5u.com熱心網友回復:
可否求老師們給一段SQL匯出excel的代碼?最多一次性匯出幾千行資料。從網上找了好久,要不是代碼跑不起來,要么就是跑百八十行都要十幾二十秒,太慢了。
鋪天蓋地的SQL轉EXCEL,卻找不到合適的,好郁悶。。。。。
uj5u.com熱心網友回復:
如果只是要一次性把SQL資料匯出來,可以在SQL Server Management Studio里直接匯出EXCEL,方便快捷。如果是用C#寫程式實作從SQL直接匯出Excel,必須在SQL Server配置一些內容,而且只能匯出到服務器,比較麻煩。可以用select讀取到DataTable然后匯出到Excel。下面的代碼是我這些年篩選過穩定高效一直在用的。https://blog.csdn.net/front333/article/details/107724908
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/19492.html
標籤:C#
上一篇:VS2017 使用webform開發的,想問下有沒有什么方法在每次發布專案的時候,把里面的JS檔案加密呢?
下一篇:bootstarp里面的table,當解析度改變時,改變table的高度,但是不希望出現滾動條,而是整個tabel的大小一起變化
