ASP.NET程序中常用的三十三种代码

来源:互联网 发布:mysql数据查询 编辑:程序博客网 时间:2024/04/28 01:10

ASP.NET程序中常用的三十三种代码

 

1. 打开新的窗口并传送参数:
  传送参数:
response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>")


  接收参数:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");


  2.为按钮添加对话框
Button1.Attributes.Add("onclick","return confirm(’确认?’)");
button.attributes.add("onclick","if(confirm(’are you sure...?’)){return true;}else{return false;}")


  3.删除表格选定记录
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()


  4.删除表格记录警告
private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
switch(e.Item.ItemType)
{
case ListItemType.Item :
case ListItemType.AlternatingItem :
case ListItemType.EditItem:
TableCell myTableCell;
myTableCell = e.Item.Cells[14];
LinkButton myDeleteButton ;
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick","return confirm(’您是否确定要删除这条信息’);");
break;
default:
break;
}
}


  5.点击表格行链接另一页
private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//点击表格打开
 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
e.Item.Attributes.Add("onclick","window.open(’Default.aspx?id=" + e.Item.Cells[0].Text + "’);");
}


  双击表格连接到另一页
  在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "location.href=’../ShippedGrid.aspx?id=" + OrderItemID + "’");
}


  双击表格打开新一页
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "open(’../ShippedGrid.aspx?id=" + OrderItemID + "’)");
}


  ★特别注意:【?id=】 处不能为【?id =】
1. 打开新的窗口并传送参数:
  传送参数:
response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>")


  接收参数:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");


  2.为按钮添加对话框
Button1.Attributes.Add("onclick","return confirm(’确认?’)");
button.attributes.add("onclick","if(confirm(’are you sure...?’)){return true;}else{return false;}")


  3.删除表格选定记录
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()


  4.删除表格记录警告
private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
switch(e.Item.ItemType)
{
case ListItemType.Item :
case ListItemType.AlternatingItem :
case ListItemType.EditItem:
TableCell myTableCell;
myTableCell = e.Item.Cells[14];
LinkButton myDeleteButton ;
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick","return confirm(’您是否确定要删除这条信息’);");
break;
default:
break;
}
}


  5.点击表格行链接另一页
private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//点击表格打开
 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
e.Item.Attributes.Add("onclick","window.open(’Default.aspx?id=" + e.Item.Cells[0].Text + "’);");
}


  双击表格连接到另一页
  在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "location.href=’../ShippedGrid.aspx?id=" + OrderItemID + "’");
}


  双击表格打开新一页
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "open(’../ShippedGrid.aspx?id=" + OrderItemID + "’)");
}


  ★特别注意:【?id=】 处不能为【?id =】
12.Panel 横向滚动,纵向自动扩展
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>


  13.回车转换成Tab
<script language="javascript" for="document" event="onkeydown">
 if(event.keyCode==13 && event.srcElement.type!=’button’ && event.srcElement.type!=’submit’ && event.srcElement.type!=’reset’ && event.srcElement.type!=’’&& event.srcElement.type!=’textarea’);
event.keyCode=9;
</script>
onkeydown="if(event.keyCode==13) event.keyCode=9"


  14.DataGrid超级连接列
DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}"


  15.DataGrid行随鼠标变色
private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType!=ListItemType.Header)
{
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=/""+e.Item.Style["BACKGROUND-COLOR"]+"/"");
e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=/""+ "#EFF3F7"+"/"");
}
}


  16.模板列
<ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID">
<ITEMTEMPLATE>
<ASPABEL text=’<%# DataBinder.Eval(Container.DataItem, "ArticleID")%>’ runat="server" width="80%" id="lblColumn" />
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN headertext="选中">
<HEADERSTYLE wrap="False" horizontalalign="Center"></HEADERSTYLE>
<ITEMTEMPLATE>
<ASP:CHECKBOX id="chkExport" runat="server" />
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<ASP:CHECKBOX id="chkExportON" runat="server" enabled="true" />
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>


  后台代码
protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
{
//改变列的选定,实现全选或全不选。
 CheckBox chkExport ;
if( CheckAll.Checked)
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = true;
}
}
else
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = false;
}
}
}


  17.数字格式化
  【<%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?】
<%#Container.DataItem("price","{0:¥#,##0.00}")%>
int i=123456;
string s=i.ToString("###,###.00");

18.日期格式化
  【aspx页面内:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
  显示为: 2004-8-11 19:44:28
  我只想要:2004-8-11 】
<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>


  应该如何改?
  【格式化日期】
  取出来,一般是object((DateTime)objectFromDB).ToString("yyyy-MM-dd");
  【日期的验证表达式】
  A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]
^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468][1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(/s(((0?[1-9])|(1[0-2]))/[0-5][0-9])((/s)|(/[0-5][0-9])/s))([AM|PM|am|pm]{2,2})))?$


  B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03]
^/d{4}[/-///s]?((((0[13578])|(1[02]))[/-///s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[/-///s]?(([0-2][0-9])|(30)))|(02[/-///s]?[0-2][0-9]))$


  【大小写转换】
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)


  19.如何设定全局变量
  Global.asax中
  Application_Start()事件中
  添加Application[属性名] = xxx;
  就是你的全局变量
  20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口?
  HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank")
  【ASPNETMENU】点击菜单项弹出新窗口
  在你的menuData.xml文件的菜单项中加入URLTarget="_blank",如:
<?xml version="1.0" encoding="GB2312"?>
<MenuData ImagesBaseURL="images/">
<MenuGroup>
<MenuItem Label="内参信息" URL="Infomation.aspx" >
<MenuGroup ID="BBC">
<MenuItem Label="公告信息" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>
<MenuItem Label="编制信息简报" URL="NewInfo.aspx" LeftIcon="file.gif" />
......


  最好将你的aspnetmenu升级到1.2版
  21.读取DataGrid控件TextBox值
foreach(DataGrid dgi in yourDataGrid.Items)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
tb.Text....
}


  23.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为数值型.我如何用客户端脚本实现这个功能?
  〖思归〗
<asp:TemplateColumn HeaderText="数量">
<ItemTemplate>
<asp:TextBox id="ShuLiang" runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>’
onkeyup="javascriptoCal()"
/>
<asp:RegularExpressionValidator id="revS" runat="server" ControlToValidate="ShuLiang" ErrorMessage="must be integer" ValidationExpression="^/d+$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="单价">
<ItemTemplate>
<asp:TextBox id="DanJian" runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>’
onkeyup="javascriptoCal()"
/>
<asp:RegularExpressionValidator id="revS2" runat="server" ControlToValidate="DanJian" ErrorMessage="must be numeric" ValidationExpression="^/d+(/./d*)?$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="金额">
<ItemTemplate>
<asp:TextBox id="JinE" runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>’ />
</ItemTemplate>
</asp:TemplateColumn><script language="javascript">
function DoCal()
{
var e = event.srcElement;
var row = e.parentNode.parentNode;
var txts = row.all.tags("INPUT");
if (!txts.length || txts.length < 3)
return;
var q = txts[txts.length-3].value;
var p = txts[txts.length-2].value;
if (isNaN(q) || isNaN(p))
return;
q = parseInt(q);
p = parseFloat(p);
txts[txts.length-1].value = (q * p).toFixed(2);
}
</script>

  24.datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了。
page_load
page.smartNavigation=true


  25.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ?
private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
{
for(int i=0;i<e.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells.Attributes.Add("Width", "80px")
}
}


  26.对话框
private static string ScriptBegin = "<script language=/"JavaScript/">";
private static string ScriptEnd = "</script>";
public static void ConfirmMessageBox(string PageTarget,string Content)
{
string ConfirmContent="var retValue=window.confirm(’"+Content+"’);"+"if(retValue){window.location=’"+PageTarget+"’;}";
ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;
Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
//Response.Write(strScript);
}


  27. 将时间格式化:string aa=DateTime.Now.ToString("yyyy年MM月dd日");
  1.1 取当前年月日时分秒
currentTime=System.DateTime.Now;


  1.2 取当前年
int 年= DateTime.Now.Year;


  1.3 取当前月
int 月= DateTime.Now.Month;


  1.4 取当前日
int 日= DateTime.Now.Day;


  1.5 取当前时
int 时= DateTime.Now.Hour;


  1.6 取当前分
int 分= DateTime.Now.Minute;


  1.7 取当前秒
int 秒= DateTime.Now.Second;


  1.8 取当前毫秒
int 毫秒= DateTime.Now.Millisecond;


  28.自定义分页代码:
  先定义变量 :
public static int pageCount; //总页面数
public static int curPageIndex=1; //当前页面


  下一页:
if(DataGrid1.CurrentPageIndex < (DataGrid1.PageCount - 1))
{
DataGrid1.CurrentPageIndex += 1;
curPageIndex+=1;
}
bind(); // DataGrid1数据绑定函数


  上一页:
if(DataGrid1.CurrentPageIndex >0)
{
DataGrid1.CurrentPageIndex += 1;
curPageIndex-=1;
}
bind(); // DataGrid1数据绑定函数


  直接页面跳转:
int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值
if(a<DataGrid1.PageCount)
{
this.DataGrid1.CurrentPageIndex=a;
}
bind();

  24.datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了。
page_load
page.smartNavigation=true


  25.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ?
private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
{
for(int i=0;i<e.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells.Attributes.Add("Width", "80px")
}
}


  26.对话框
private static string ScriptBegin = "<script language=/"JavaScript/">";
private static string ScriptEnd = "</script>";
public static void ConfirmMessageBox(string PageTarget,string Content)
{
string ConfirmContent="var retValue=window.confirm(’"+Content+"’);"+"if(retValue){window.location=’"+PageTarget+"’;}";
ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;
Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
//Response.Write(strScript);
}


  27. 将时间格式化:string aa=DateTime.Now.ToString("yyyy年MM月dd日");
  1.1 取当前年月日时分秒
currentTime=System.DateTime.Now;


  1.2 取当前年
int 年= DateTime.Now.Year;


  1.3 取当前月
int 月= DateTime.Now.Month;


  1.4 取当前日
int 日= DateTime.Now.Day;


  1.5 取当前时
int 时= DateTime.Now.Hour;


  1.6 取当前分
int 分= DateTime.Now.Minute;


  1.7 取当前秒
int 秒= DateTime.Now.Second;


  1.8 取当前毫秒
int 毫秒= DateTime.Now.Millisecond;


  28.自定义分页代码:
  先定义变量 :
public static int pageCount; //总页面数
public static int curPageIndex=1; //当前页面


  下一页:
if(DataGrid1.CurrentPageIndex < (DataGrid1.PageCount - 1))
{
DataGrid1.CurrentPageIndex += 1;
curPageIndex+=1;
}
bind(); // DataGrid1数据绑定函数


  上一页:
if(DataGrid1.CurrentPageIndex >0)
{
DataGrid1.CurrentPageIndex += 1;
curPageIndex-=1;
}
bind(); // DataGrid1数据绑定函数


  直接页面跳转:
int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值
if(a<DataGrid1.PageCount)
{
this.DataGrid1.CurrentPageIndex=a;
}
bind();

 

Asp.NET中常用的一些优化性能的方法
 
[作者:不详    转贴自:不详    点击数:35    字体:【大 中 小】    更新时间:2006-2-24 22:23:32]

     ASP.NET 的缓存机制相比ASP有很大的改进,本文档除对常用优化方法进行总结介绍外,强调了如何使用ASP.NET的缓存来获得最佳性能。
  
  1:不要使用不必要的session
  和ASP中一样,在不必要的时候不要使用Session。
  
  可以针对整个应用程序或者页面禁用会话状态:
  
  l 禁用页面的会话状态
  
  
  l 禁用应用程序的会话状态
  
  在应用程序的Web.Config文件的sessionstate配置节中,将mode属性设置为off。
  
  即:。
  
  
  
  2:不使用不必要的Server Control
  ASP.net中,大量的服务器端控件方便了程序开发,但也可能带来性能的损失,因为用户每操作一次服务器端控件,就产生一次与服务器端的往返过程。因此,非必要,应当少使用Server Control。
  
  
  
  3:不使用不必要的ViewState
  默认情况下,ASP.Net对所有的Server Control都启用了ViewState(视图状态)。但ViewState需要在客户端保存一些信息,这会造成性能的消耗。当必须使用Server Control时,可以考虑禁止ViewState。
  
  有两种方式禁止ViewState:针对整个页面或者单个控件禁用ViewState。
  
  l 针对控件
  
  
  l 针对页面
  
  
  4:不要用Exception控制程序流程
  有些程序员可能会使用异常来实现一些流程控制。例如:
  
  
  
  try{
  
  result=100/num;
  
  }
  
  Catch(Exception e)
  
  {
  
  result=0;
  
  }
  
  但实际上,Exception是非常消耗系统性能的。除非必要,不应当使用异常控制来实现程序流程。
  
  上面的代码应当写为:
  
  
  
  if(num!=0)
  
  result=100/num;
  
  else
  
  result=0;
  
  5:禁用VB和Jscript动态数据类型
  应当始终显示地申明变量数据类型,这能够节约程序的执行时间。为此,可以在页面前面写明:
  
  6:使用存储过程完成数据访问
  7:只读数据访问不要使用DataSet。
  DataSet作为一个功能强大的、支持离线的数据库,其对性能的开销也相对较大。在特定的场合可以使用.Net中的其它数据集作为替代。
  
  n 使用SqlDataReader代替DataSet;
  
  n SqlDataReader是read-only,forward-only。
  
  8:关闭ASP.NET的Debug模式
  为了方便开发调试,VS.net中对于Debug模式默认是开启的,在部署应用程序时,应该关闭Debug模式,这将有效提高应用程序性能。
  
  9:使用ASP.Net Output Cache缓冲数据;
  提供缓冲功能是ASP.net中非常强大的一种功能。曾看到过某些评测说:ASP.net程序的性能比SUN的JSP应用程序性能快上几倍,实际上,该评测程序非常重要的一点就是使用了很多ASP.net的缓冲功能。
  
  ASP.net中常用的缓冲方式有:
  
  n 页面缓冲
  
  一个例子:查询北京市的天气。因为天气数据在一定的时间内是相对规定的。
  
  当Web程序中第一次查询北京市的天气时,应用程序可能是调用一个远程的WebService获取天气信息。而其后的用户就可以从缓冲中得到当前的天气信息。这将大大提高性能,减少服务器的压力。
  
  方式:
  
  u :指明页面使用缓冲
  
  u Duration:控制缓冲有效的时间,单位为分钟。
  
  u VaryByParam:用于指明是否缓冲的判断依据。例如,如果第一个用户查询的是北京的天气,则缓冲中存储了北京市的天气。当第二个用户查询上海的天气时,为避免读取到错误的缓冲,可以用这样的代码缓冲多个城市的天气:
  
  
  这就指明了根据页面URL中的cityName参数来缓冲多份数据。
  
  n 片断缓冲
  
  在ASP.net中,除了在页面范围内使用缓冲,也还可以针对User Control使用Output Cache参数实现对用户控件的缓冲。同样的,一个页面中相同类型的控件也可以有多个不同的缓冲。可以根据参数来实现不同的缓冲。
  
  例如:对于控件可以根据Control 的C属性的不同实现不同的缓冲。
  
  
  
  n 数据缓冲
  
  
  
  n 缓冲的过期依赖条件
  
  某种意义上,Cache和Application是一样的,都是一种公有的对象。为了取得缓冲与数据有效性之间的平衡,可以根据需要对缓冲过期策略进行合理的设置。
  
  u 文件依赖
  
  Cache.Insert (“Mydata”, Source
  
  , New CacheDependency(Server.MapPath(“authors.xml”)))
  
  此代码的含义是当authors.xml文件不发生变化的时候,缓冲MyData始终有效。
  
  
  
  u 时间依赖
  
  设定1小时后过期,这是一种绝对过期。
  
  Cache.Insert(“Mydata”,Source,null
  
  ,DateTime.Now.AddHours(1),TimeSpan.Zero);
  
  
  
  u 相对过期依赖
  
  当DataSet不再发生变化20分钟以后,缓冲过期。
  
  Cache.Insert(“MyData”,Source,null
  
  ,DateTime.MaxValue,TimeSpan.FromMinutes(20));


vb.net和c#语法比较
 
[作者:不详    转贴自:不详    点击数:58    字体:【大 中 小】    更新时间:2006-2-24 22:25:00]

vb.net和c#语法比较

1.变量声名

C# 语法

int x;

String s;

String s1, s2;

Object o;

Object obj = new Object();

public String name;

VB语法

Dim x As Integer

Dim s As String

Dim s1, s2 As String

Dim o 'Implicitly Object

Dim obj As New Object()

Public name As String

 

 

2语句

C#:

Response.Write("中文c#技术站");

VB:

Response.Write("中文c#技术站")

 

3.注释语句

//中文c#技术站

/*

欢迎访问

中文c#技术站

*/

 

VB:

'中文c#技术站

 

4.获得URL 传递的变量

C#:

String s = Request.QueryString["Name"];

String value = Request.Cookies["key"];

VB:

Dim s, value As String

s = Request.QueryString("Name")

value = Request.Cookies("Key").Value

相 关 文 章
没有相关文章!
vb.net和c#语法比较
 
[作者:不详    转贴自:不详    点击数:59    字体:【大 中 小】    更新时间:2006-2-24 22:25:00]

5.声明属性

C#:

public String name {

 

get {

...

return ...;

}

 

set {

... = value;

}

 

}

 

VB:

Public Property Name As String

 

Get

...

Return ...;

End Get

 

Set

... = Value;

End Set

 

End Property

6.数组

C#

String[] a = new String[3];

a[0] = "1";

a[1] = "2";

a[2] = "3";

//二维数组

String[][] a = new String[3][3];

a[0][0] = "1";

a[1][0] = "2";

a[2][0] = "3";

VB:

Dim a(3) As String

a(0) = "1"

a(1) = "2"

a(2) = "3"

 

Dim a(3,3) As String

a(0,0) = "1"

a(1,0) = "2"

a(2,0) = "3"

 

Dim a() As String

a(0,0) = "1"

a(1,0) = "2"

a(2,0) = "3"

 

Dim a(,) As String

a(0,0) = "1"

a(1,0) = "2"

a(2,0) = "3"

7变量初始化

C#:

String s = "Hello World";

int i = 1

double[] a = { 3.00, 4.00, 5.00 };

VB:

Dim s As String = "Hello World"

Dim i As Integer = 1

Dim a() As Double = { 3.00, 4.00, 5.00 }

 

8;判断语句(If 语句)

if (Request.QueryString != null) {

...

}

 

VB:

If Not (Request.QueryString = Null)

...

End If

 

9.分支语句(case 语句)

C#:

switch (FirstName) {

case "John" :

...

break;

case "aul" :

...

break;

case "Ringo" :

...

break;

}

VB:

Select (FirstName)

case "John" :

...

case "aul" :

...

case "Ringo" :

...

End Select

 

10 For循环语句

C#

for (int i=0; i<3; i++)

a(i) = "test";

VB:

Dim I As Integer

For I = 0 To 2

a(I) = "test"

Next

11 While 循环

C#:

int i = 0;

while (i<3) {

Console.WriteLine(i.ToString());

i += 1;

}

VB:

Dim I As Integer

I = 0

Do While I < 3

Console.WriteLine(I.ToString())

I = I + 1

Loop

12 字符串连接

C#:

String s1;

String s2 = "hello";

s2 += " world";

s1 = s2 + " !!!";

VB:

Dim s1, s2 As String

s2 = "hello"

s2 &= " world"

s1 = s2 & " !!!"

 

 

声明事件

C#:

void MyButton_Click(Object sender,

EventArgs E) {

...

}

VB:

Sub MyButton_Click(Sender As Object,

E As EventArgs)

...

End Sub


13 声明Object

C#

MyObject obj = (MyObject)Session["Some Value"];

IMyObject iObj = obj

VB:

Dim bj As MyObject

Dim iObj As IMyObject

obj = Session("Some Value")

iObj = CType(obj, IMyObject)

 

 

14 数据类型转换

C#

int i = 3;

String s = i.ToString();

double d = Double.Parse(s);

VB:

Dim i As Integer

Dim s As String

Dim d As Double

 

i = 3

s = i.ToString()

d = CDbl(s)

 

 

15 类的声明和继承

C#:

using System;

 

namespace MySpace {

 

public class Foo : Bar {

 

int x;

 

public Foo() { x = 4; }

public void Add(int x) { this.x += x; }

public int GetNum() { return x; }

}

 

}

 

VB:

Imports System

 

Namespace MySpace

 

Public Class Foo : Inherits Bar

 

Dim x As Integer

 

Public Sub New()

MyBase.New()

x = 4

End Sub

 

Public Sub Add(x As Integer)

Me.x = Me.x + x

End Sub

 

Public Function GetNum() As Integer

Return x

End Function

 

End Class

 

End Namespace


16 声明类的主函数

C#:

using System;

 

public class ConsoleCS {

 

public ConsoleCS() {

Console.WriteLine("Object Created");

}

 

public static void Main (String[] args) {

Console.WriteLine("Hello World");

ConsoleCS ccs = new ConsoleCS();

}

 

}

 

VB

Imports System

 

Public Class ConsoleVB

 

Public Sub New()

M
yBase.New()

Console.WriteLine("Object Created")

End Sub

 

Public Shared Sub Main()

Console.WriteLine("Hello World")

Dim cvb As ConsoleVB

cvb = New ConsoleVB()

End Sub

 

End Class

 

 

17 标准模块

C#

using System;

 

public class Module {

 

public static void Main (String[] args) {

Console.WriteLine("Hello World");

}

 

}

VB:

Imports System

 

Public Module ConsoleVB

 

Public Sub Main()

Console.WriteLine("Hello World")

End Sub

 

End Module

修改DataSet里的内容

首先我们需要打开一个联结:
string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";
string strComm = "select * from UserList";
ADOConnection MyConnection = new ADOConnection(MyConnString);
ADODataSetCommand MyComm = new ADODataSetCommand(strComm,MyConnection);

这里我们为了讲解方便,只在dataset存入一个表的内容:
DataSet MyDataSet = new DataSet();
MyComm.FillDataSet(MyDataSet,"UserList");
此时我们就获得了一个拥有UserList表数据的DataSet。在讲解DataSet之前,我们还需要了解DataSet的结构下面是DataSet的结构树
DataSet
RelationsCollection
ExtendedProperties
TablesCollection  
DataTables
 
Rows
Columns
其它
由于我们研究的是DataTable,其它的我们暂时不管他们。一个DataSet中包含多个DataTable,一个DataTable又包含有多个Row,这就是我们操作DataSet的基础啦:)

添加数据

添加一数据,从上面的列表中我们可以看出,其实就是添加一行row,这里我们也来演示一下如何添加一行数据,我们程序一切以dataset为顶点,呵呵,如果tablescollection,rowscollection下去的话,还有一些烦人的dt.acceptchanges这些方法的调用,很烦人,还是一次搞定吧。

datarow dr=MyDataSet.Tables["UserList"].NewRow();
dr["UserName"] = "周讯";
dr["ReMark"] = "100";
dr["Comment"] = "漂亮MM";
MyDataSet.Tables.Rows.Add(dr);

第一行,我们建立一个新的数据行,它用来储存我们新加入的数据。然后我们在这个数据行中加入我们需要的数据。dr["username"]表明是对username字段进行添加,你可以使用dr[1]来添加信息,但是这需要我们事先知道字段在数据表的位置,而且在不知道数据表结构的情况很难知道我们添加的数据的对应情况,所以还是用字段名为好。
       最后我们使用RowsCollection的Add方法,将我们新建这一行加入到数据表中。
修改数据
知道如何添加数据后,修改数据也是很简单的事情了.
MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飞刀大哥";
这样我们就修改了第一行数据中的UserName字段。

删除数据

删除数据,主要是使用rowscollection提供的delete方法,看下面的程序也是很简单的事情啦:)
MyDataSet.Tables["UserList"],Rows[0].Delete();
这一行数据就已经被删除了。
恢复数据
有时候我们添加/修改数据会出现错误,这时候,就需要恢复原来的数据。下面的程序,显示如何判断是否有错误发生:
if(MyDataSet.HasErrors)
{
MyDataSet.RejectChanges();
}
首先我们检查DataSet中是否有错误发生,如果有就使用RejectChanges()方法,恢复DataSet中的数据。注意这里恢复是在DataSet中所有表以及表中DataRow中的数据,也就是在此交次操作的数据全部恢复。如果我们只需要恢复部分内容,我们可以使用DataTable或DataRow的RejectChanges(),这里就不详细讲解了,使用方法和DataSet一样,只是操作的对像不同而已。

探测dataset是否有改动

我们在将dataset送交给数据库去保存去,我们需要看看这个dataset是否已经被改动了。如果没有改动,我们也就没有必要去修改数据库了。

if(mydataset.haschanges)
{
    //保存
}else{
    //不进行任何操作
}

更新数据库

我们上面的操作,都只是针对dataset的,没有操作数据库,但是我们的目的还是要将数据保存到数据中去,所以我们这里就需要调用datasetcommand的update方法。下面的程序显示如何将dataset的数据交给数据库。mycomm.update(mydataset);
很简单的一句,呵呵。这里要注意,如果一个DataSet中包含有多个表,而我们只更新一个,那我们就必须写明更新的数据表名:
MyComm.Update(MyDataSet,"UserList");
当Update方法被调用后,DataSetCommand会将数据库中的数据与DataSet中的数据相比较,对不相同的地方进行更新。