Ⅰ 如何從資料庫取出內容,動態生成二維數組,並列印出這個數組中的元素
兩種方法:
1.轉化為一維數組申請
2.先申請全部行首指針,再按行逐行申請
1.
a=(int *)malloc(sizeof(int),(unsigned)m*n);
使用的時候就和一般的二維數組一樣。
舉個例子給你:
#include "stdlib.h"
#include "stdio.h"
#include <malloc.h>
int main()
{
int i,j;
int n;//這個就是需要指定的行數
int (*p)[10];
scanf("%d",&n);//取得行數
//動態生成二維數組,指定列數為10,如果想改,自己該裡面
的參數,如果想定義n行2列就為: p=(int (*)[2])malloc(n*2*sizeof(int));
p=(int (*)[10])malloc(n*10*sizeof(int)); //動態申請n行10列的二維數組
for(i=0;i<n;i++)
for(j=0;j<10;j++)
p[i][j]=i*j;
for(i=0;i<n;i++)
{
for(j=0;j<10;j++)
printf("%d,",p[i][j]);
printf("\n");
}
free(p);
return 0;
}
2.
這個也給你舉個例子吧:
#include <stdio.h>
#include <malloc.h>
main()
{
int i = 0;
int j = 0;
int line = 0;
int row = 0;
int **p = NULL;
printf("input the line of the array:\n");
scanf("%d", &line);
printf("input the row of the array:\n");
scanf("%d", &row);
p = (int **)malloc(sizeof(int *) * line);
if (NULL == p)
{
return;
}
for (i = 0; i < line; i++)
{
*(p + i) = (int *)malloc(sizeof(int) * row);
if (NULL == *(p + i))
{
return;
}
}
/*input data*/
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
p[i][j] = i + 1;
}
}
/*output data*/
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
printf("%d", p[i][j]);
}
}
/*free every line point*/
for (i = 0; i < line; i++)
{
free(*(p + i));
p[i] = NULL;
}
free(p);
p = NULL;
}
第一種方法數組創建和釋放都比較簡單
Ⅱ asp 先連接sql資料庫 然後導出數據並列印的代碼 怎麼寫
SP開發必備:WEB列印代碼大全這篇文章主要介紹了如何使用ASP控制Web的各種列印效果,它能夠控制縱打、橫打和頁面邊距等。1、控制"縱打"、 "橫打"和"頁面的邊距"。 (1)
<script defer>
function SetPrintSettings() {
// -- advanced features
factory.printing.SetMarginMeasure(2) // measure margins in inches
factory.SetPageRange(false, 1, 3) // need pages from 1 to 3
factory.printing.printer = "HP DeskJet 870C"
factory.printing.copies = 2
factory.printing.collate = true
factory.printing.paperSize = "A4"
factory.printing.paperSource = "Manual feed" // -- basic features
factory.printing.header = "This is MeadCo"
factory.printing.footer = "Advanced Printing by ScriptX"
factory.printing.portrait = false
factory.printing.leftMargin = 1.0
factory.printing.topMargin = 1.0
factory.printing.rightMargin = 1.0
factory.printing.bottomMargin = 1.0
}
</script> (2) <script language="javascript">
function printsetup(){
// 列印頁面設置
wb.execwb(8,1);
}
function printpreview(){
// 列印頁面預覽
wb.execwb(7,1);
} function printit()
{
if (confirm('確定列印嗎?')) {
wb.execwb(6,6)
}
}
</script>
</head>
<body>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>
<input type=button name=button_print value="列印" onclick="javascript:printit()">
<input type=buttonname=button_setup value="列印頁面設置" onclick="javascript:printsetup();">
<input type=buttonname=button_show value="列印預覽" onclick="javascript:printpreview();">
<input type=button name=button_fh value="關閉" onclick="javascript:window.close();"> ------------------------------------------------
關於這個組件還有其他的用法,列舉如下:
WebBrowser.ExecWB(1,1) 打開
Web.ExecWB(2,1) 關閉現在所有的IE窗口,並打開一個新窗口
Web.ExecWB(4,1) 保存網頁
Web.ExecWB(6,1) 列印
Web.ExecWB(7,1) 列印預覽
Web.ExecWB(8,1) 列印頁面設置
Web.ExecWB(10,1) 查看頁面屬性
Web.ExecWB(15,1) 好像是撤銷,有待確認
Web.ExecWB(17,1) 全選
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 關閉窗體無提示 2、分頁列印
<HTML>
<HEAD>
<STYLE>
P {page-break-after: always}
</STYLE>
</HEAD>
<BODY>
<%while not rs.eof%>
<P><%=rs(0)%>
<%rs.movenext%>
<%wend%>
</BODY>
</HTML> 3、ASP頁面列印時如何去掉頁面底部的路徑和頂端的頁碼編號
(1)ie的文件-〉頁面設置-〉講裡面的頁眉和頁腳裡面的東西都去掉,列印就不出來了。
(2)<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="YC">
<script language="VBScript">
dim hkey_root,hkey_path,hkey_key
hkey_root="HKEY_CURRENT_USER"
hkey_path="\Software\Microsoft\Internet Explorer\PageSetup"
'//設置網頁列印的頁眉頁腳為空
function pagesetup_null()
on error resume next
Set RegWsh = CreateObject("WScript.Shell")
hkey_key="\header"
RegWsh.RegWrite hkey_root+hkey_path+hkey_key,""
hkey_key="\footer"
RegWsh.RegWrite hkey_root+hkey_path+hkey_key,""
end function
'//設置網頁列印的頁眉頁腳為默認值
function pagesetup_default()
on error resume next
Set RegWsh = CreateObject("WScript.Shell")
hkey_key="\header"
RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&w&b頁碼,&p/&P"
hkey_key="\footer"
RegWsh.RegWrite hkey_root+hkey_path+hkey_key,"&u&b&d"
end function
</script>
</HEAD> <BODY>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/><p align=center>
<input type="button" value="清空頁碼" onclick=pagesetup_null()> <input type="button" value="恢復頁嗎" onclick=pagesetup_default()><br/> </p>
</BODY>
</HTML> 4、浮動幀列印 <SCRIPT LANGUAGE=javascript>
function button1_onclick() {
var odoc=window.iframe1.document;
var r=odoc.body.createTextRange();
var stxt=r.htmlText;
alert(stxt)
var pwin=window.open("","print");
pwin.document.write(stxt);
pwin.print();
}
</SCRIPT> 4、用FileSystem組件實現WEB應用中的本地特定列印
<script Language=VBScript>
function print_onclick //列印函數
dim label
label=document.printinfo.label.value //獲得HTML頁面的數據
set objfs=CreateObject("Scripting.FileSystemObject") //創建FileSystem組件對象的實例
set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立與列印機的連接
objprinter.Writeline("__________________________________") //輸出列印的內容
objprinter.Writeline("| |")
objprinter.Writeline("| 您列印的數據是:"&label& " |」)
objprinter.Writeline("| |")
objprinter.Writeline("|_________________________________|")
objprinter.close //斷開與列印機的連接
set objprinter=nothing
set objfs=nothing // 關閉FileSystem組件對象
end function
</script>
伺服器端腳本:
<%………
set conn=server.CreateObject ("adodb.connection")
conn.Open "DSN=name;UID=XXXX;PWD=XXXX;"
set rs=server.CreateObject("adodb.recordset")
rs.Open(「select ……」),conn,1,1
……….%> //與資料庫進行交互
HTML頁面編碼:
<HTML>
………
<FORM ID=printinfo NAME="printinfo" >
<INPUT type="button" value="列印>>" id=print name=print > //調用列印函數
<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存伺服器端傳來的數據
………
</HTML>
Ⅲ 如何用asp將資料庫中的數據導出並生成在excel或word中列印
這個我做過,用asp的話,效率很低,慢得要死~~~而且很容易腳本超時。
後來我是用vb6.0寫的dll,然後在asp中調用的。
不知道摟住的伺服器可不可以安裝dll???
下面是asp中的代碼
=====================================================
Set rs2=Server.CreateObject("ADODB.recordset")
sql="select * from eq where eqbumen='"&dep&"' order by eqbumen desc"
rs2.open sql,conn,1,1
set objExcel=CreateObject("Excel.Application")
objExcel.Workbooks.Open(server.mappath("\test")&"\book1.xlt") '打開Excel模板
objExcel.Sheets(1).select '選中工作頁
set sheetActive=objExcel.ActiveWorkbook.ActiveSheet
num=2 '從Excel的第2行開始
Do while not rs2.eof '循環直至數據集中的數據寫完
strRange="b"&num&":k"&num '設定要填寫內容的單元區域
sheetActive.range(strRange).font.size=10 '設定字體大小
sheetActive.range(strRange).WrapText=false '設定文字回卷
sheetActive.range(strRange).ShrinkToFit=true '設定是否自動適應表格單元大小
sheetActive.range(strRange).value=array(rs2("zcid"),rs2("eqname"),rs2("eqchangjia"),rs2("eqxinghao"),rs2("eqnengli"),rs2("eqwei"),rs2("eqxianzhuang"),rs2("eqno"),rs2("eqbumen"),rs2("eqchejian")) '把數據集中的數據填寫到相應的單元中
num=num+1
rs2.MoveNext
loop
function getTemporaryFile(myFileSystem)
dim tempFile,dotPos
tempFile=myFileSystem.getTempName
dotPos=instr(1,tempFile,".")
getTemporaryFile=mid(tempFile,1,dotPos)&"xls"
end function
set myFs=createObject("scripting.FileSystemObject")
filePos=server.mappath("\test")&"\temp" '要存放列印臨時文件的臨時目錄
fileName=getTemporaryFile(myFs) '取得一個臨時文件名
'myFs.DeleteFile filePos&"*.xls" '刪除該目錄下所有原先產生的臨時列印文件
set myFs=nothing
objExcel.ActiveWorkbook.saveas filePos&filename
objExcel.quit
set objExcel=Nothing
Ⅳ 如何導出mysql資料庫和表的所有數據
MySQL命令行導出資料庫:
1,進入MySQL目錄下的bin文件夾:cd
MySQL中到bin文件夾的目錄
如我輸入的命令行:cd
C:\Program
Files\MySQL\MySQL
Server
4.1\bin
(或者直接將windows的環境變數path中添加該目錄)
2,導出資料庫:mysqlmp
-u
用戶名
-p
資料庫名
>
導出的文件名
如我輸入的命令行:mysqlmp
-u
root
-p
news
>
news.sql
(輸入後會讓你輸入進入MySQL的密碼)
(如果導出單張表的話在資料庫名後面輸入表名即可)
3、會看到文件news.sql自動生成到bin文件下
命令行導入資料庫:
1,將要導入的.sql文件移至bin文件下,這樣的路徑比較方便
2,同上面導出的第1步
3,進入MySQL:mysql
-u
用戶名
-p
如我輸入的命令行:mysql
-u
root
-p
(輸入同樣後會讓你輸入MySQL的密碼)
4,在MySQL-Front中新建你要建的資料庫,這時是空資料庫,如新建一個名為news的目標資料庫
5,輸入:mysql>use
目標資料庫名
如我輸入的命令行:mysql>use
news;
6,導入文件:mysql>source
導入的文件名;
如我輸入的命令行:mysql>source
news.sql;
Ⅳ 怎樣將MySQL資料庫結構和數據導出或導入
在使用MySQL時,有時需要從資料庫中導出數據,以便用在本地或其它的資料庫系統之上,或者將現有數據導入MySQL資料庫中。做MySQL資料庫的結構和數據的導出和導入。要用到MySQL的mysqlmp工具,基本用法是:
shell> mysqlmp [OPTIONS] database [tables]
如果不給定任何錶,整個資料庫將被導出。
如果想看到mysqlmp的版本支持的各個選項及含義,可以執行這條命令:
shell> mysqlmp --help
下面來談談mysqlmp支持的主要選項及含義:
--add-locks :在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE。
--add-drop-table :在每個create語句之前增加一個drop table。
--allow-keywords :允許創建是關鍵詞的列名字。這由表名前綴於每個列名做到。
-c, --complete-insert :使用完整的insert語句(用列名字)。
-C, --compress :如果客戶和伺服器均支持壓縮,壓縮兩者間所有的信息。
--delayed :用INSERT DELAYED命令插入行。
-e, --extended-insert :使用全新多行INSERT語法。(給出更緊縮並且更快的插入語句)
-#, --debug[=option_string] :跟蹤程序的使用(為了調試)。
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--fields-terminated-by=...
這些選擇與-T選擇一起使用,並且有相應的LOAD DATA INFILE子句相同的含義LOAD DATA INFILE語法:
-F, --flush-logs :在開始導出前,洗掉在MySQL伺服器中的日誌文件。
-f, --force :即使我們在一個表導出期間得到一個SQL錯誤,繼續。
-h, --host=.. :從命名的主機上的MySQL伺服器導出數據。預設主機是localhost。
-l, --lock-tables :為開始導出鎖定所有表。
-t, --no-create-info :不寫入表創建信息(CREATE TABLE語句)
-d, --no-data :不寫入表的任何行信息。用這個參數我們可以得到只有一個表的結構的導出。
--opt :同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
-pyour_pass, --password[=PASSWORD] :與伺服器連接時使用的口令。如果你不指定"="PASSWORD"部分,mysqlmp需要來自終端的口令。
-P port_num, --port=port_num :與一台主機連接時使用的TCP/IP埠號。(這用於連接到localhost以外的主機,因為它使用 Unix套接字。)
-q, --quick :不緩沖查詢,直接導出至stdout;使用mysql_use_result()做它。
-S /path/to/socket, --socket=/path/to/socket :與localhost連接時(預設主機)使用的套接字文件。
-T, --tab=path-to-some-directory :對於每個給定的表,創建一個table_name.sql文件,它包含SQL CREATE 命令,和一個table_name.txt文件,它包含數據。 注意:這只有在mysqlmp運行在mysqld守護進程運行的同一台機器上的時候才工作。.txt文件的格式根據--fields-xxx和--lines--xxx選項來定。
-u user_name, --user=user_name :與伺服器連接時,MySQL使用的用戶名。預設值是你的Unix登錄名。
-O var=option, --set-variable var=option設置一個變數的值。可能的變數被列在下面。
-v, --verbose :冗長模式。列印出程序所做的更多的信息。
-w, --where='where-condition' :只導出被選擇了的記錄;注意引號是強制的。
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"
我們可以用mysqlmp作整個資料庫的一個備份:
mysqlmp --opt database > backup-file.sql
或者我們將一個資料庫的信息填充到另外一個MySQL資料庫:
mysqlmp --opt database | mysql --host=remote-host -C database由於mysqlmp導出的是完整的SQL語句,所以用mysql客戶程序很容易就能把數據導入了:
shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-file.sql
Ⅵ sql資料庫如何導出
1、打開SQL Server,找到需要導出的資料庫。
Ⅶ C#實現導出資料庫中的數據到excel里和列印功能
方法很多,這里以從dataview導出excel為例:
先從資料庫中取出數據到dataview
public void OutputExcel(DataView dv,string str)
{
//dv為要輸出到Excel的數據,str為標題名稱
GC.Collect();
Application excel;// = new Application();
int rowIndex=4;
int colIndex=1;
_Workbook xBk;
_Worksheet xSt;
excel= new ApplicationClass();
xBk = excel.Workbooks.Add(true);
xSt = (_Worksheet)xBk.ActiveSheet;
//
//取得標題
//
foreach(DataColumn col in dv.Table.Columns)
{
colIndex++;
excel.Cells[4,colIndex] = col.ColumnName;
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//設置標題格式為居中對齊
}
//
//取得表格中的數據
//
foreach(DataRowView row in dv)
{
rowIndex ++;
colIndex = 1;
foreach(DataColumn col in dv.Table.Columns)
{
colIndex ++;
if(col.DataType == System.Type.GetType("System.DateTime"))
{
excel.Cells[rowIndex,colIndex] = (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//設置日期型的欄位格式為居中對齊
}
else
if(col.DataType == System.Type.GetType("System.String"))
{
excel.Cells[rowIndex,colIndex] = "'"+row[col.ColumnName].ToString();
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//設置字元型的欄位格式為居中對齊
}
else
{
excel.Cells[rowIndex,colIndex] = row[col.ColumnName].ToString();
}
}
}
//
//載入一個合計行
//
int rowSum = rowIndex + 1;
int colSum = 2;
excel.Cells[rowSum,2] = "合計";
xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,2]).HorizontalAlignment = XlHAlign.xlHAlignCenter;
//
//設置選中的部分的顏色
//
xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Select();
xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Interior.ColorIndex = 19;//設置為淺黃色,共計有56種
//
//取得整個報表的標題
//
excel.Cells[2,2] = str;
//
//設置整個報表的標題格式
//
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;
//
//設置報表表格為最適應寬度
//
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Select();
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Columns.AutoFit();
//
//設置整個報表的標題為跨列居中
//
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Select();
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).HorizontalAlignment = XlHAlign.xlHAlignCenterAcrossSelection;
//
//繪制邊框
//
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Borders.LineStyle = 1;
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,2]).Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;//設置左邊線加粗
xSt.get_Range(excel.Cells[4,2],excel.Cells[4,colIndex]).Borders[XlBordersIndex.xlEdgeTop].Weight = XlBorderWeight.xlThick;//設置上邊線加粗
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[rowSum,colIndex]).Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;//設置右邊線加粗
xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,colIndex]).Borders[XlBordersIndex.xlEdgeBottom].Weight = XlBorderWeight.xlThick;//設置下邊線加粗
//
//顯示效果
//
excel.Visible=true;
//xSt.Export(Server.MapPath(".")+""+this.xlfile.Text+".xls",SheetExportActionEnum.ssExportActionNone,Microsoft.Office.Interop.OWC.SheetExportFormat.ssExportHTML);
xBk.SaveCopyAs(Server.MapPath(".")+""+this.xlfile.Text+".xls");
ds = null;
xBk.Close(false, null,null);
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xBk);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xSt);
xBk = null;
excel = null;
xSt = null;
GC.Collect();
string path = Server.MapPath(this.xlfile.Text+".xls");
System.IO.FileInfo file = new System.IO.FileInfo(path);
Response.Clear();
Response.Charset="GB2312";
Response.ContentEncoding=System.Text.Encoding.UTF8;
// 添加頭信息,為"文件下載/另存為"對話框指定默認文件名
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
// 添加頭信息,指定文件大小,讓瀏覽器能夠顯示下載進度
Response.AddHeader("Content-Length", file.Length.ToString());
// 指定返回的是一個不能被客戶端讀取的流,必須被下載
Response.ContentType = "application/ms-excel";
// 把文件流發送到客戶端
Response.WriteFile(file.FullName);
// 停止頁面的執行
Response.End();
}
Ⅷ 有木有人知道把mysql資料庫的數據讀取出來怎麼用列印機列印在紙上
我和你有同樣的疑問,經過搜索和查找,我覺得有兩種方法,一是通過網頁列印,二是導出到其他格式文件中列印。類似vfp和access中的報表功能,mysql是沒有的。