写这篇文章的时候首先要向bben_h 和jdxx表示感谢,是bben_h提出了C#中字符替换这个问题,jdxx很好的解决了这个问题,同时也使我想起以前做的一些程序(简单网站新闻发布系统),现在就把它奉献给大家,希望能对大家学习通过ADO.NET操作SqlServer数据库和DataGrid控制元件有些帮助。
数据库结构
数据库名:mydb,数据表名:news
news表结构
id(int 4) 递增ID
biaoti(nvarchar 50) 新闻标题
zhaizi(nvarchar 50) 出自
neirong(ntext 16) 新闻内容
shijian(datatime 8)发布时间
img(nvarchar 50)图片路径
counter(int 4)点击次数
程序中连接SqlServer数据库,其中netfiresoft是我的机子的名称。
网站新闻发布系统源程序:(数据库用的是SqlServer)
增加页面(addnews.aspx)
〈%@Page language="C#" Debug="True"%〉
〈%@Import Namespace="System.Data"%〉
〈%@Import Namespace="System.Data.SqlClient"%〉
〈html〉
〈head〉
〈title〉网站新闻信息添加页面〈/title〉
〈style type="text/css"〉
〈!--
table { font-size: 9pt}
body { font-size: 9pt}
--〉
〈/style〉
〈Script Language="C#" runat="server"〉
void submit_Click(Object sender,EventArgs e)
{
//当单击提交按钮之后执行下面的代码
SqlConnection MyConnection;
SqlCommand MyCommand;
String ConnStr;
DateTime now= DateTime.Now;
//链接SQL Server数据库
MyConnection =new SqlConnection("Initial Catalog=mydb;Data Source=netfiresoft;Integrated Security=SSPI;");
MyConnection.Open();
String neirong2;
neirong2=Server.HtmlEncode(neirong.Text);
String zh="";
String tmpstr="";
for (int i=0; i〈neirong2.Length;i++) {
zh=neirong2.Substring(i,1);
if (zh==" ") { zh=" ";}
if (zh=="
") { zh="〈br〉"; }
if (zh==" ") { zh=" ";}
tmpstr=tmpstr+zh; }
neirong2=tmpstr;
if ((biaoti.Text=="")||(neirong2==""))
{
Label1.Text="标题或内容不能为空!";
}
else if (biaoti.Text.Length〉=100)
{
Label1.Text="你的标题太长了!";
}
else if (img.Text.Length〉=100)
{
Label1.Text="你的图片路径太长了!";
}
else
{
//将新记录插入到数据库中
ConnStr="insert into news(biaoti,zhaizi,neirong,shijian,img,counter) VALUES(‘"+biaoti.Text+"‘,
‘"+zhaizi.Text+"‘, ‘"+neirong2+"‘, ‘"+now.ToString()+"‘, ‘"+img.Text+"‘,0)";
MyCommand=new SqlCommand(ConnStr,MyConnection);
MyCommand.ExecuteNonQuery();
Label1.Text="增加成功!";
}
biaoti.Text="";
zhaizi.Text="";
neirong.Text="";
img.Text="";
}
void reset_Click(Object sender,EventArgs e)
{
//当单击取消按钮之后执行下面代码
biaoti.Text="";
zhaizi.Text="";
neirong.Text="";
img.Text="";
}
〈/Script〉
〈/head〉
〈body 〉
〈table width="550" border="1" cellspacing="0" cellpadding="0" align="center"
bordercolorlight="#666666" bordercolordark="#FFFFFF"〉
〈form runat=server〉
〈tr bgcolor="#CCCCCC"〉
〈td colspan="2"〉网站新闻信息添加页面〈/td〉
〈/tr〉
〈tr〉
〈td colspan="2"〉 〈/td〉
〈/tr〉
〈tr〉
〈td width="78"〉标题:〈/td〉
〈td width="416"〉 〈asp:TextBox id="biaoti" size="50" runat="server"/〉
〈/td〉
〈/tr〉
〈tr〉
〈td width="78"〉摘自:〈/td〉
〈td width="416"〉 〈asp:TextBox id="zhaizi" size="30" runat="server"/〉 〈/td〉
〈/tr〉
〈tr〉
〈td width="78"〉图片:〈/td〉
〈td width="416"〉〈asp:TextBox id="img" size="30" runat="server"/〉〈/td〉
〈/tr〉
〈tr〉
〈td width="78"〉内容:〈/td〉
〈td width="416"〉 〈asp:TextBox id="neirong" Columns="60" Rows="15" TextMode="MultiLine" runat="server"〉〈/asp:TextBox〉〈/td〉
〈/tr〉
〈tr〉
〈td colspan="2"〉 〈/td〉
〈/tr〉
〈tr〉
〈td colspan="2"〉
〈div align="center"〉
〈asp:Button id="submit" onClick=submit_Click runat="server" Text="提交"〉〈/asp:Button〉
〈asp:Button id="reset" onClick=reset_Click runat="server" Text="取消"〉〈/asp:Button〉
〈/div〉
〈/td〉
〈/tr〉
〈/form〉
〈/table〉
〈p align="center"〉〈asp:Label id="Label1" runat="server"/〉
〈/body〉
〈/html〉
显示新闻标题页面(newsshow.aspx):(用到DataGrid控制元件)
〈%@Page language="C#" Debug="True"%〉
〈%@Import Namespace="System.Data"%〉
〈%@Import Namespace="System.Data.SqlClient"%〉
〈Html〉
〈Head〉
〈Title〉网站新闻发布系统〈/Title〉
〈script language="C#" runat="server" 〉
//当刚载入页面时候执行下面的程序。
int startIndex;
void Page_Load(Object Src,EventArgs E)
{
if (!IsPostBack)
{
startIndex =0;
}
//绑定DataGrid
Binding();
}
//链接数据库,绑定DataGrid
void Binding()
{
SqlConnection MyConnection;
String ConnStr;
MyConnection =new SqlConnection("Initial Catalog=mydb;Data Source=netfiresoft;Integrated Security=SSPI;");
MyConnection.Open();
String strCom= "SELECT id ,biaoti ,zhaizi ,counter ,shijian FROM news ORDER BY id DESC";
DataSet myDataSet= new DataSet();
SqlDataAdapter myCommand=new SqlDataAdapter(strCom,MyConnection);
//填充DataSet
myCommand.Fill(myDataSet,"news");
//关闭链接
DataGrid1.DataSource = myDataSet.Tables["news"].DefaultView;
//绑定 DataGrid
DataGrid1.DataBind();
}
void ChangePage(Object sender,DataGridPageChangedEventArgs e)
{
startIndex = e.NewPageIndex*DataGrid1.PageSize;
DataGrid1.CurrentPageIndex = e.NewPageIndex;
Binding();
}
〈/script〉
〈/Head〉
〈Body runat=server〉
〈p align="Center"〉〈font size="+3"〉新闻浏览〈/font〉
〈form runat=server〉
〈asp:DataGrid id=DataGrid1
runat="server"
ForeColor="Black"
PagerStyle-Mode="NumericPages"
Headerstyle-BackColor="#AAAADD"
AlternatingItemStyle-BackColor="#FFFFCD"
OnPageindexChanged="ChangePage"
PageSize="10"
AllowPaging="True"
Width="80%"
Font-Name="Verdana"
Font-Size="8pt"
autogeneratecolumns="False"〉
〈Columns〉
〈asp:HyperLinkColumn
HeaderText="标题"
DataNavigateUrlField="id"
DataNavigateUrlFormatString="show.aspx?id={0}"
DataTextField="biaoti"
Target="_new"
/〉
〈asp:BoundColumn HeaderText="摘自" itemstyle-width=20% DataField=zhaizi/〉
〈asp:BoundColumn HeaderText="点击次数" itemstyle-width=10% DataField=counter/〉
〈asp:BoundColumn HeaderText="发表日期" itemstyle-width=20% DataField=shijian/〉
〈/Columns〉
〈/asp:DataGrid〉
〈/form〉
〈/Body〉
〈/Html〉
新闻内容浏览页面(show.aspx):
〈%@Page language="C#" Debug="True"%〉
〈%@Import Namespace="System.Data"%〉
〈%@Import Namespace="System.Data.SqlClient"%〉
〈html〉
〈head〉
〈title〉新闻发布系统〈/title〉
〈style type="text/css"〉
〈!--
TABLE { FONT-SIZE: 9pt }
INPUT { FONT-SIZE: 9pt }
SELECT{ FONT-SIZE: 9pt }
BODY { FONT-SIZE: 9pt }
a:link { color: #000099; text-decoration: none}
a:visited { color:#000099; text-decoration: none}
a:hover { color: #990000; text-decoration: underline}
td {font-size:9pt;line-height:13pt;}
.p1 { font-family: "宋体"; font-size: 9pt}
.p2 { }
.p3 { font-family: "宋体"; font-size: 12pt}
--〉
〈/style〉
〈script Language="C#" runat="server"〉
DataSet ds;
DataRow dr;
String newsid;
void Page_Load(Object sender,EventArgs e)
{
SqlConnection MyConnection;
String ConnStr,strCon;
newsid = Request.Params["id"];
MyConnection =new SqlConnection("Initial Catalog=mydb;Data Source=netfiresoft;Integrated Security=SSPI;");
MyConnection.Open();
String strCom= "SELECT biaoti ,zhaizi ,neirong,img,counter ,shijian FROM news where id="+newsid;
ds= new DataSet();
SqlDataAdapter myCommand=new SqlDataAdapter(strCom,MyConnection);
myCommand.Fill(ds,"news");
dr = ds.Tables["news"].Rows[0];
strCon ="SELECT counter FROM news WHERE id = "+newsid;
SqlCommand myCommand2= new SqlCommand(strCon, MyConnection);
SqlDataReader reader = myCommand2.ExecuteReader();
reader.Read();
int i = reader.GetInt32(0);
i++;
reader.Close();
strCon ="UPDATE news SET counter = "+i.ToString()+" WHERE (id= "+newsid+")";
myCommand2.CommandText = strCon;
myCommand2.ExecuteNonQuery();
MyConnection.Close();
}
〈/script〉
〈/head〉
〈body bgcolor="#FFFFFF" link="#000000"〉
〈div align="center" class="p2"〉
〈table width="500" border="0" cellspacing="0" cellpadding="0"〉
〈tr〉
〈td〉〈div align="center"〉新闻发布系统〈/div〉〈/td〉
〈/tr〉
〈tr〉〈td〉 〈/td〉
〈/tr〉
〈/table〉
〈table width="500" border="1" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF" bordercolorlight="#CCCCCC"〉
〈tr〉
〈td background="mmto.gif" height="15" width="470"〉
〈table width="500" border="0" cellspacing="