??xml version="1.0" encoding="utf-8" standalone="yes"?>
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Workbooks.Add(true);
3.table时的数据Q@环遍历插入到excel中?br />
具体实例如下Q?br /> string connectionstr = "Server=192.168.1.10;database=ssh;uid=sa;pwd=1234";
string sqlstr = "select * from medstock";
SqlConnection con = new SqlConnection(connectionstr);
SqlCommand cmd = new SqlCommand(sqlstr,con);
DataSet ds = new DataSet();
DataTable db = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(cmd);//׃SqlDataAdapter自n带有数据库打开与关闭功能,所以不用手动打开数据库与关闭?br /> adp.Fill(ds,"table1");
db = ds.Tables["table1"];
//建列名,Ҏ实际情况而定Q即要在excel中显C的列名Q?br /> string[] str=new string[db.Columns.Count];
for (int i = 0; i < str.Length-2; i++)
{
str[i] = db.Columns[i+1].ColumnName;
}
//建excel实例。也是table的容器;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Workbooks.Add(true);
//先在excel中显C出table的列名;
for (int i = 0; i < str.Length; i++)
{
excel.Cells[1, i + 1] = str[i];
}
//再向excel中@环添加表中的每一行的每一列;
if (db.Rows.Count > 0)
{
for (int i = 0; i < db.Rows.Count; i++)
{
for (int j = 1; j < db.Columns.Count; j++)
{
string str1 = db.Rows[i][j].ToString();
excel.Cells[i + 2, j] = "'" + str1;
}
}
}
//讄止弹出保存和覆盖的询问提示?nbsp;
// excel.DisplayAlerts = false;
// excel.AlertBeforeOverwriting = false;
excel.Save();//保存excel文g
excel.Quit();//保Excelq程关闭
excel.Visible = true;// 前台可见 后台q行
excel = null;
]]>
控g都是服务器端的控? 如果你的控g设ؓ自动回发到服务器Q即AutoPostBack属性设为TrueQ,执行每次操作都会提交到后台处?是所谓的后台代码Q即以[.aspx.cs]l尾的页?,也就要在再次加蝲面的同时做出相应的操作Q所以先再次执行page_load事gQ执行了 if(!page.IsPostBack){}外的代码 后再执行其它的操作(你在面上的操作Q。处理完再回发到Q即跌{到相应的面。如果还是回发到原来的页面,则这时候该面׃是第一ơ加载了Q而是俗称的回传页?/p>
?if(!page.IsPostBack){ q里是首ơ加载页面时要实现的功能代码Q} 代码写在page_load事g中?span style="color: red">q?/span>可以使用if(!IsPostBack)来判?#8212;—是否是当前页面控件的操作 Q!
下表列出了可被合q以构造自定义模式的模?br />========================================
q些模式是区分大写的;例如Q识?#8220;MM”Q但不识?#8220;mm”。如果自定义模式包含I白字符或用单引hh的字W,则输出字W串也包含这些字W。未定义为格式模式的一部分或未定义为格式字W的字符按其原义复制?/p>
格式模式 说明 Q?br />d 月中的某一天。一位数的日期没有前导零?span class="Apple-converted-space">
dd 月中的某一天。一位数的日期有一个前导零?span class="Apple-converted-space">
ddd 周中某天的羃写名Uͼ?AbbreviatedDayNames 中定义?span class="Apple-converted-space">
dddd 周中某天的完整名Uͼ?DayNames 中定义?span class="Apple-converted-space">
M 月䆾数字。一位数的月份没有前导零?span class="Apple-converted-space">
MM 月䆾数字。一位数的月份有一个前导零?span class="Apple-converted-space">
MMM 月䆾的羃写名Uͼ?AbbreviatedMonthNames 中定义?span class="Apple-converted-space">
MMMM 月䆾的完整名Uͼ?MonthNames 中定义?span class="Apple-converted-space">
y 不包含纪元的q䆾。如果不包含U元的年份小?10Q则昄不具有前导零的年份?span class="Apple-converted-space">
yy 不包含纪元的q䆾。如果不包含U元的年份小?10Q则昄h前导零的q䆾?span class="Apple-converted-space">
yyyy 包括U元的四位数的年份?span class="Apple-converted-space">
gg 时期或纪元。如果要讄格式的日期不h兌的时期或U元字符Ԍ则忽略该模式?span class="Apple-converted-space">
h 12 时制的时。一位数的小时数没有前导零?span class="Apple-converted-space">
hh 12 时制的时。一位数的小时数有前导零?span class="Apple-converted-space">
H 24 时制的时。一位数的小时数没有前导零?span class="Apple-converted-space">
HH 24 时制的时。一位数的小时数有前导零?span class="Apple-converted-space">
m 分钟。一位数的分钟数没有前导零?span class="Apple-converted-space">
mm 分钟。一位数的分钟数有一个前导零?span class="Apple-converted-space">
s U。一位数的秒数没有前导零?span class="Apple-converted-space">
ss U。一位数的秒数有一个前导零?span class="Apple-converted-space">
f U的数_ֺZ位。其余数字被截断?span class="Apple-converted-space">
ff U的数_ֺZ位。其余数字被截断?span class="Apple-converted-space">
fff U的数_ֺZ位。其余数字被截断?span class="Apple-converted-space">
ffff U的数_ֺ为四位。其余数字被截断?span class="Apple-converted-space">
fffff U的数_ֺZ位。其余数字被截断?span class="Apple-converted-space">
ffffff U的数_ֺ为六位。其余数字被截断?span class="Apple-converted-space">
fffffff U的数_ֺZ位。其余数字被截断?span class="Apple-converted-space">
t ?AMDesignator ?PMDesignator 中定义的 AM/PM 指示的W一个字W(如果存在Q?span class="Apple-converted-space">
tt ?AMDesignator ?PMDesignator 中定义的 AM/PM 指示(如果存在Q?span class="Apple-converted-space">
z 时区偏移量(“+”?#8220;-”后面仅跟时Q。一位数的小时数没有前导零。例如,太^z标准时间是“-8”?span class="Apple-converted-space">
zz 时区偏移量(“+”?#8220;-”后面仅跟时Q。一位数的小时数有前导零。例如,太^z标准时间是“-08”?span class="Apple-converted-space">
zzz 完整时区偏移量(“+”?#8220;-”后面跟有时和分钟)。一位数的小时数和分钟数有前导零。例如,太^z标准时间是“-08:00”?span class="Apple-converted-space">
: ?TimeSeparator 中定义的默认旉分隔W?span class="Apple-converted-space">
/ ?DateSeparator 中定义的默认日期分隔W?span class="Apple-converted-space">
% c 其中 c 是格式模式(如果单独使用Q。如果格式模式与原义字符或其他格式模式合qӞ则可以省?#8220;%”字符?br />/ c 其中 c 是Q意字W。照原义昄字符。若要显C反斜杠字符Q请使用“//”?/p>
只有上面W二个表中列出的格式模式才能用于创徏自定义模式;在第一个表中列出的标准格式字符不能用于创徏自定义模式。自定义模式的长度至ؓ两个字符Q例如,
DateTime.ToString( "d") q回 DateTime |“d”是标准短日期模式?span class="Apple-converted-space">
DateTime.ToString( "%d") q回月中的某天;“%d”是自定义模式?span class="Apple-converted-space">
DateTime.ToString( "d ") q回后面跟有一个空白字W的月中的某天;“d”是自定义模式?/p>
比较方便的是,上面的参数可以随意组?q且不会出错,多试?肯定会找C要的旉格式
如要得到2005q?6?q样格式的时?br />可以q样?
date.ToString("yyyyqMM?, DateTimeFormatInfo.InvariantInfo)
如此cL.
下面列出一些Asp.net中具体的日期格式化用法:
============================================
1.l定时格式化日期Ҏ:
<ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " >
<ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE >
</ASP:BOUNDCOLUMN >
2.数据控g如DataGrid/DataList{的件格式化日期Ҏ:
e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();
3.用Stringc{换日期显C格?
String.Format( "yyyy-MM-dd ",yourDateTime);
4.用ConvertҎ转换日期昄格式:
Convert.ToDateTime("2005-8-23").ToString
("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持J体数据?/p>
5.直接用ToStringҎ转换日期昄格式:
DateTime.Now.ToString("yyyyMMddhhmmss");
DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")
6.只显C年?span class="Apple-converted-space">
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")
7.昄旉所有部分,包括Q年月日时分U?span class="Apple-converted-space">
<asp:BoundColumn DataField="收款旉" HeaderText="收款旉"
DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}">
</asp:BoundColumn>
Ҏ一Q在数据库中d囄名字Q然后把囄存在指定的文件夹?/strong>
q种Ҏ存v来简单,但是删除的时候麻烦?/span>
存:在数据库中徏一个文本字D(accessQ或者varchar字段QsqlserverQ长度能放上一张图片即?/span>
q程Q就是一般的存的insert into
举个栗子Qsql数据库中有一个id字段 自增cd 一个name字段Q用于存攑֛片名U的cd是varcharcd
qwinform界面中你可以拖动一个TextBoxQ用于存放\径,一个Buttonq个׃说了Q还有一个openFileDialog
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
this.textBox1.Text = openFileDialog1.FileName;
} //打开路径Q必不可的 q些都是是在button单击事g里完成的
if (openFileDialog1.FileName.Length > 0) // 判断openFileDialog1路径的长?/span>
{
string oldName = openFileDialog1.FileName; //定义一个stringcd的变?用于存放【文件\径?/span>
string[] splitName = oldName.Split('.'); //取文件的扩展名做准备?/span>
string ext = splitName[splitName.Length - 1]; //文g的扩展名
if (ext == "jpg" || ext == "gif" || ext == "bmp" || ext == "JPG") //限制上传囄的格?/span>
{
string dbName = DateTime.Now.ToString("yyyyMMddhhmmss") + "." + ext; //l上传的囄起个名字Q以旉命名
string newName = AppDomain.CurrentDomain.BaseDirectory + dbName; //新\?q是个相对\?/span>
File.Copy(oldName, newName, true); //把文件从以前的\径复制到新的路径中去
//下面开始添加到数据库里面了
string constring="";//数据库的q接字符?/span>
using (SqlConnection con=new SqlConnection (constring))
{
con.open();
stirng sql="insert into shujukuname (name) values(@name)"; //因ؓid自增的这里只需要添加图片名U?/span>
SqlCommand cmd = new SqlCommand(sql,con);
cmd.Parameters.Add("@name",SqlDbType.VarChar).Value=TextBox1.Text.Trim();
cmd.ExecuteNonQuery();
con.Close();
}
}
} //q样添加完成了
昄囄Q? q里一定要有一个PictureBox1
要从数据库中取出q个name
using (SqlConnection con=new SqlConnection (constring))
{
string sql="select name from shujukuname where id=' 1' ";//当id=1的时候查询的囄的名U?/span>
SqlDataAdapter da = new SqlDataAdapter(sql, con);
con.Open();
DataTable dt=new DataTable();
da.Fill(dt);
string name =dt.Rows[0]["name"].ToString();
con.Close(); //q样p取出name来了Q然后进行显C?/span>
}
string path=Application.StartupPath + "http://"+ name; //一张图片的路径
if(File.Exists(path)) //Ҏq个路劲昄有没有这张图?/span>
{
PictureBox1.Image=Image.FromFile(path); //PictureBox1昄的path路径的图?/span>
}
else
{
PictureBox1.Image=Image.FromFile(Application.StartupPath + "http://" +默认囄); //PictureBox1昄的默认的的图?/span>
}
winform 中往数据库中d囄的两U方式之二:直接把图片添加在sqlserver?/strong>
首先要有一个image或者binarycd的字D?/span>
q种是以二进制Ş式插入到数据库中
FileStream fs = new FileStream(pathName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
byte[] buffByte = new byte[fs.Length];
fs.Read(buffByte, 0, (int)fs.Length);
fs.Close(); //数据库字DؓimagecdQ将囄转化为byte[]Q保存到数据?/span>
SqlConnection db = new SqlConnection(strConn);
db.Open();
string strSQL = "INSERT INTO shujuktable (name) values (@name) ";
SqlCommand cmd = new SqlCommand(strSQL, db);
cmd.Parameters.Add( "@name", SqlDbType.Image);
cmd.Parameters[ "@name"].Value = buffByte;
cmd.ExecuteNonQuery(); //保存囄的过E?/span>
清理资源
以上q部分是如何d囄Q下面这部分是读取图?/span>
-————————————————————————————————————————————————
SqlConnection conn = new SqlConnection(strConn);
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter("select name from shujuktable where ID='1'", conn);
adp.Fill(dt);
byte[] buffByte = (byte[])dt.Rows[0][“name”];
MemoryStream ms = new MemoryStream(buffByte);
Image image = Image.FromStream(ms, true);
this.pictureEdit1.Image = image;