Ⅰ 如何从数据库取出内容,动态生成二维数组,并打印出这个数组中的元素
两种方法:
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是没有的。
