c#编程经验

 1. 单引号表示单个字符,双引号表示多个字符
2. Response.Write(""); //显示提示框
   confirm()  //可以出来两个按钮   this.deleteButton.Attributes.Add("onClick", "return ConfirmDeletion();");
   prompt()      //可以弹出输入框
   var aa = window.document.getElementsByName.getElementById("Button1"); //获取网页的元素_客户端控件
   var ksrq = document.getElementById('<%= TextBox_ksrq.ClientID %>');   //获取网页的元素_服务端控件
   //UpdatePanel 提示
   ScriptManager.RegisterStartupScript(theUpdatePanel, typeof(UpdatePanel), "scriptName", "alert('Time updated!')", true);
2. asp.net 动态Master页面
     protected void Page_PreInit(object sender, EventArgs e)
    {

    }

3. Response.Write(""); //打开新窗口
   Response.Write(""); //打开新窗口
   Response.Write("window.open('WebForm2.aspx','_self','');");
   Response.Write(""); //打开新窗口
   Response.Write(""); //关闭新窗口
 窗口特性 (即是打开的浏览器的样子) 的关键字、关键字值可以参考下表: (逗号分割)
中午或者晚上 我有时间
是否显示工具栏:toolbar[=yes|no]|[=1|0]
是否显示地址栏:location[=yes|no]|[=1|0]
是否显示前进、后退、刷新按钮:directories[=yes|no]|[=1|0]
是否显示状态栏:status[=yes|no]|[=1|0]
是否显示菜单栏:menubar[=yes|no]|[=1|0]
是否显示滚动条:scrollbars[=yes|no]|[=1|0]
用户是否可以改变窗口的大小:resizable[=yes|no]|[=1|0]
是否在新窗口中保留浏览器的浏览历史纪录:copyhistory[=yes|no]|[=1|0]
窗口的宽度 (单位为像素):width=pixels
窗口的高度 (单位为像素):height=pixels

4. 窗口第一次打开
   if (!IsPostBack)  {}
5. 实例化类
   Class1 sas=new Class1();  string is_conn ; is_conn  = sas.Class2();
6. 在某个单词地后面按住alt 键,再按向右地键 字母中的小写(单词首个字母)会变成大写字母 
7. SqlConnection my_sql = new SqlConnection(connectstring);
   SqlConnection 是区分大小写的
8. {}的用法 //每个语句块都要用{}来表示

9. 如何分页
 
    在事件MyDataGrid_PageIndexChanged 中
     MyDataGrid.CurrentPageIndex = e.NewPageIndex; //
 Button1_Click(this,new System.EventArgs()); //调用另外一个按钮的代码

10.  label 控件在赋值的时候,可以形成多行

11. 在类里面如何显示提示框Response.Write(""); //显示提示框
   
     需要引用:  public class wz_DropDownList  :System.Web.UI.Page

12. 对字符串去除空格

     ls_str.Trim()

13.  和(and)  用 & 表示,  或(or)  用 |表示

14. 对字符串判断空值 ls_str == null   不等于 ls_str != null

15. 如何保存全局变量

   通过用Session   对象  例如: Session["aaa"] = "333"
   if (Session["is_str"] == null)
    {
                  Session["is_str"] = 0;
    }

16. 获取web的相对路径:  aaa = Request.ApplicationPath;

17. 排序(在datagrid 中设置排序表达式  如;  s_bh ASC 或  s_bh  DESC )
 
18. 赋予excel 文件的权限

  开始->运行->"dcomcnfg"->在应用程序列表框中选择“Microsoft Excel 应用程序”->
“安全性”->选择“使用自定义访问权限”,点击“编辑”按钮
添加本地“ASPNET”用户,权限为“允许访问”
“安全性”->选择“使用自定义启动权限”,点击“编辑”按钮
添加本地“ASPNET”用户,权限为“允许访问”

如果还不行,就“使用自定义配置权限”,添加或修改相应用户的权限
///////////
最后,来看一下,如何调用客户端的Excel进行打印,就是让客户一点击"打印"的按钮,就可以自动打开客户端的Excel,将要打印的内容导入。要实现这样的效果,必须要求客户端的IE浏览器设置中,在其中的"安全-本地Intranet-自定义级别中",将"下载未签名ACTIVX"中设置为启动或提示。代码如下:
/////////


19. 导出到excel (一种简单的方法)

    public void ExportToExcel(System.Web.UI.Control ctl)
  {
   bool CurrCtlVisible=ctl.Visible;
   ctl.Visible=true;        Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls"); 
   Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
   Response.ContentType = "application/ms-excel";
   ctl.Page.EnableViewState = false;
   System.IO.StringWriter tw = new System.IO.StringWriter();
   System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);
   ctl.RenderControl(hw);
   Response.Write(tw.ToString());
   Response.End();
     ctl.Page.EnableViewState = true;
   ctl.Visible=CurrCtlVisible;
  }

      //有的时候,字符会变成数字,需要作一下处理

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
   if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
   {
    e.Item.Cells[1].Attributes.Add("style","vnd.ms-excel.numberformat:@");
    
   }


  }

20. 重定向(在本页面的位置上指向一个新的页面)

   Response.Redirect( "WebForm2.aspx?id=" + e.Item.Cells[0].Text );

21. datagrid 添加记录

    允许datagrid  显示页尾

   在模版列中的下面增加一个按钮,它的name = "一个值",在html 中,增加这个控件的属性
   enabled = '<%# islastpage() %>'
    再在islastpage() 函数中增加判断( 当前页 = 页的总数)
   在datagrid 的事件(ItemCommand)  中写关于点击按钮的操作


22. datagrid 的模版列的建立

    在datagrid 的ItemCreated 事件中写关于建立页面控件与模版中的控件关联的语法

23. pb的datawindow 在net 中的用法
    <连接>
    dbms = oledb,servername = "计算机名字",useid = sa,dbparameter =  PROVIDER='SQLOLEDB',PROVIDERSTRING='database=ywgl'
    <存盘>
   System.Data.SqlClient.SqlConnection theConnection = new               System.Data.SqlClient.SqlConnection();
   theConnection.ConnectionString = "Data Source=adserver;Initial Catalog=ywgl;User ID=sa;";
   theConnection.Open();
   Sybase.DataWindow.AdoTransaction SQLCA = new Sybase.DataWindow.AdoTransaction(theConnection,              "Isolation='RU'");
   SQLCA.BindConnection();
   SQLCA.Transaction = SQLCA.Connection.BeginTransaction(IsolationLevel.ReadUncommitted);
    dw_data.SetTransaction(SQLCA);
    dw_data.UpdateData(true, false);
    SQLCA.Transaction.Commit();
    dw_data.RestoreDataCache();
    dw_data.RestoreContext();
    dw_data.Retrieve();
    
24. 添加框架集

     


25. 设置asp.net 的事务级别

    SqlTransaction ls_trans = is_connect.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);

26. JavaScript函数的定义
   

27. 在asp.net 中动态调用JavaScript函数(删除)

         Button1.Attributes.Add("onClick", "return my_aaa()");
         Button1.Attributes.Add("onClick", "return  window.confirm('删除后不能恢复,真的要对订阅数据进行清理吗?')");

          ///////////////下面是JavaScript函数//return 很重要
  

27.   确认框的出现
       Literal1.Text = "";
       document.Form1.控件的id
       Literal1 是占位符,要出现在控件的后面(代码位置)


28. JavaScript函数 alert 的单引号的问题的解决:

   ls_sql = ls_sql + " ";

29. xml (从字符串中读入,导出到字符串)

   using System.Xml;
   using System.IO;
  
   ///读入

   string xmlText = "004";
       StringReader strReader = new StringReader(xmlText);
          
      XmlTextReader xtr = new XmlTextReader(strReader);

  

//   XmlTextReader xtr = new XmlTextReader(@"d:\bbb.xml");
            xtr.WhitespaceHandling = WhitespaceHandling.None;
   XmlDocument xd = new XmlDocument();
   xd.Load(xtr);

////导出

    string strReader11 = "";
  strReader11 = xd.OuterXml;

30.  日期控件(梅花雨)

    用记事本打开js文件,然后另存为时候用编码:utf-8即可!

   使用方法:  1. 添加引用:
              2.   //
                    将第二个添加到html的from中即可
  

31. 列名转换

    select  aaa as s_lm1 from aaa  //aaa为实际的列名,s_lm1 为虚拟的列名

32.    数据库记录导出到xml 文件
 
                        DataSet mydataset = new DataSet();
   SqlConnection myconnection = new SqlConnection();
   myconnection.ConnectionString = "server=adserver;database=ywgl;User ID=ad_dbo;password=ad_dbo";
   myconnection.Open();
   string  ls_sql ="select * from aaa";
   SqlDataAdapter mycommand = new SqlDataAdapter(ls_sql,myconnection);
   mycommand.Fill(mydataset,"aaa");
   //
   DataGrid1.DataSource = mydataset.Tables[0].DefaultView;
   DataGrid1.DataBind();
   mydataset.WriteXmlSchema(Server.MapPath("aaa.xsd"));

   mydataset.WriteXml(Server.MapPath("aaa.xml"),XmlWriteMode.IgnoreSchema);

33.   xml 文件内容更新数据库

34.   java 函数操作页面控件的属性

  document.all.TextBox1.value="sss"; (要把这句话放在控件的后面)  
  document.Form1.TextBox1.value="sss"; (要把这句话放在控件的后面)  
   
35. 定义程序入口点

    ///


  /// 应用程序的主入口点。
  ///

  [STAThread]
  static void Main()
  {
   Application.Run(new Form1());
  }


  36. 类型转换   (从字符串转成数字)

                    double aaa = 32.23;
   string sss = "22.22";
   aaa = double.Parse(sss);或者 aaa = Convert.ToDouble(sss);

37. asp.net 在什么地方调用出错地页面(统一)

    在web.config 的设置中

   

    mode="On"
    />

38. 在.net 如何从一个页面调用另外一个页面的东西? ()

     通过在打开页面的时候,赋予一定的参数来实现(例如:)
     Response.Write("");
     //
     在aaa.aspx的page_load的方法中:
      if(this.Request.QueryString["id2"] != null){Label1.Text = this.Request.QueryString["id2"];}
     //说明 : 首先检测参数是否存在? 如果存在,则对其进行操作

39. 关于databind

    在b/s 中datagrid 需要进行帮定  ; 在c/s 中 ,不需要进行帮定


41. 更新dataset

    在更新dataset 之前,要使用commandbuild  对象,因为适配器自己不会建立适当的sql语法

    SqlCommandBuilder  mycommandbuild = new SqlCommandBuilder(sqlDataAdapter1);//创建语法
    sqlDataAdapter1.Update(dataSet1);  //更新数据库
    dataSet1.AcceptChanges();   //消除dataset 的状态

42. 数据库连接

     如果用适配器,则不用调用连接对象的OPen方法

     如果直接用命令,则需要调用连接对象的open 和 close 方法

43. 弹出出错窗口

    Response.Write(""); //打开新窗口

44. 导出到excel (灵活赋值)
       //按钮语法
        Application.Lock();
          ExportToExcel   ls_l = new ExportToExcel();
          ls_l.CreateExcel();
 Application.UnLock();
       //要用到导出到excel 的类ExportToExcel   //在印务web 中有

45. 用户自定义控件

   
   首先在自定义控件中添加自己的属性或者方法
   public string mytext()
  {
   get
   {
    return TextBox1.Text.Trim ();
   }
   set
   {
               TextBox1.Text=value;
   }

  }

      //
      在主页面中的调用:  在页面的开始,声明变量protected WebUserControl1 WebUserControl11;
      //然后就可以使用了

46. 添加自定义控件
      this.FindControl("Form1").Controls.Add((WebUserControl1) this.LoadControl("WebUserControl1.ascx"));

47.  如何在自定义控件中修改主页面上的 控件的属性 (冒泡)
   
     1. Label lb = (Label)this.Page.FindControl("Label2");
     2. System.Web.UI.Control c = this.Parent.Parent.FindControl("Label2");
     使用1或者2都行  从用户控件找到承载它的页面
        (lb.Text = "asdfasdf"; 或者c.text = "df")

    c# 的写法
    this.FindForm(); (this代表用户控件)

48. 如何让菜单(框架)显示或者隐藏

   //search 代表框架集  (下面两个的集合)
   if (LinkButton2.Text == "显示菜单")
  {
    LinkButton2.Text = "隐藏菜单";
    Response.Write("");

  }
   else
   {
    LinkButton2.Text = "显示菜单";
    Response.Write("");
   }

49. 创建锚点字符串 (html)
    关闭菜单 //

50. 系统提示asp.net 检测到不是1.1版本  如何解决?

     运行aspnet_regiis -i (在相应目录下,在dos 下运行此命令)

51. 如何关闭框架?

    Response.Write(""); //显
     (让登录页面代替框架,此代码在框架中的一个页面中写)

52. 数据帮定语法:

    从dataview  DataBinder.Eval(Container.DataItem,"aaa")
   

53. 如何取模板列中的值
      if (((Button ) e.CommandSource).CommandName=="update")
      {string ls_bbb = ((TextBox) e.Item.FindControl("TextBox4")).Text; //bbb的值
      执行update 命令 } (在datalist的某个事件中)

//    DataList1.SelectedIndex = e.Item.ItemIndex;  (在itemcommand事件中)

54.   datalist模板列的编辑,更新和取消 
   
      必须把编辑列的commandname 定义为edit ,更新列的commandname 定义为  update
                  取消列的commandname 定义为 cancel

55.  如何使用Cookie

    HttpCookie MyCookie = new HttpCookie("LastVisit");
    DateTime now = DateTime.Now;

    MyCookie.Value = now.ToString();
    MyCookie.Expires = now.AddHours(1);
    Response.Cookies.Add(MyCookie);

56. 如何让.net的代码展开或者折叠

       #region 标题
   //代码块
    #endregion                       
57. 如何获取当前请求的验证

     bool www = Context.User.Identity.IsAuthenticated; 
        //www 如果为false的话,为没有经过验证, true 的话,为已经经过验证
              //当前请求是否验证成功
//或者  if(!Page.IsValid)   //指的是当前的页面的验证是否成功

58. 取得datagrid 中的数值 e.Item.Cells[4].Text;

59. 如何设置asp.net 页面的登录安全性

    FormsAuthentication.SetAuthCookie(st_UserName, false);
          //创建身份验证票 st_UserName 代表用户名  false 代表是否使用cookie
    FormsAuthentication.SignOut();  //移除身份验证票

   在web.config 中需要这样设置 :

60. 如何将datagrid 的行设置为修改状态  : 
   
     DataGrid1.EditItemIndex = (int) e.Item.ItemIndex; //事件为:DataGrid1_EditCommand
     然后,重新帮定一下

61. 如何上传很大的文件?
     修改web.config

     
      10240 代表10M

62. 如何读写xml配置文件
 
    E:\我的文档\记事本\经验文档\net\文件

63. 如何在客户端上打开word文档,并保存到服务器上去?

   (在客户端上安装offices2003 或者xp) 
 
  
 
65. aspx文件在dreamweaver 中显示(汉字)乱码?
  
   在dreamweaver 加入下面的语句: (换上新版本:可以显示aspx中的text框等)
  

66. 在datagrid中,给编辑框赋值

     在事件DataGrid1_ItemCreated中,
        ListItemType lit = e.Item.ItemType;
   if(lit == ListItemType.EditItem)
   {
    TextBox TextBox1 = (TextBox)e.Item.FindControl("TextBox1");
    //DropDownList DropDownList1 = (DropDownList)e.Item.FindControl("DropDownList1");
    DataRowView drv = (DataRowView)e.Item.DataItem;
    
    if(drv != null)
    {
     TextBox1.Text = drv["loginname"].ToString();
      
    }
   }


  
67. 在datagrid中, 增加删除按钮的提示框
   
     在事件DataGrid1_ItemDataBound   中,

                       if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
   {

    LinkButton button = (LinkButton) e.Item.FindControl("lb_delete");
    
    button.Attributes.Add ("onclick","return confirm (\"确定要删除此项记录吗?\");");
   }
  
 68.  for循环的使用方法
              经常用于数组列表
       for (int i = 0;i <  10;i++)
    {
                                }

69.  foreach 循环的用法 //xhxhxh

    foreach (string s in myArray){} //ls_sz 为字符串的集合(普通数组)
    foreach (TreeNode ls_TreeNode_z in TreeView1.Nodes ){} //属性视图的foreach 用法
    foreach(DataRowView Row in dvTree)                     //dataset 的foreach 用法
    foreach(DataRow r in myDataSet.Tables[0].Rows)  //用于删除操作等  !!  遍历dataset
    foreach(DataRowView drv in dt.DefaultView)      //遍历DataView
    foreach(DataGridItem thisItem in DataGrid1.Items) //遍历datagrid
    for (int i=0;i < my_ArrayList.Count;i++)          //遍历ArrayList
    for (int i = 0;i < CheckBoxList1.Items.Count;i++) //遍历CheckBoxList
    for (int i = 0;i < DropDownList1.Items.Count;i++) //遍历DropDownList
    for(int i=0;i< ListBox2.Items.Count;i++)          //遍历listbox
    foreach (DataGridViewRow thisItem in dataGridView_main.Rows) //遍历datagridview
    foreach (DataGridViewRow myItem in dataGridView_main.SelectedRows)     //遍历datagridview (中 被选择的行)
    foreach (DataRowView myRow in myDataView)   //遍历DataRowView   视图
    foreach (ToolStripMenuItem myToolStripMenuItem in m_main.Items)//循环菜单项
    foreach (TreeNode myTreeNode in treeView_sc_select.Nodes) //循环树

70. DataView myDataView = new DataView(myDataSet.Tables[0]); //新的数据视图
    myDataView .RowFilter = " id = '"+s+"' and s_mch = '"+textbox_mch.text+"' ";

70. 大纲折叠

    #region #endregion

71.  公用sql语法返回值  //cx //tststs

   //web 应用
   if (myDataSet == null){qjbl.get_error_ck();return;}
   if (qjbl.is_update[0].ToString()== "no"){qjbl.get_error_ck();return;}

   //win form
   if (myDataSet == null){MessageBox.Show("数据库错误: " + DataOperation.globalErrorString, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);return;}
   if (myDataSet == null) { MessageBox.Show(qjbl.qjbl_error, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; }
   if (qjbl.is_update[0].Trim() == "no") {MessageBox.Show("数据库错误: "+qjbl.is_update[1].Trim(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; }
   //普通提示
   MessageBox.Show("我的文字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

71. c# 按钮提示

       DialogResult myDialogResult = new DialogResult();
       myDialogResult = MessageBox.Show("是否真的要创建数据库?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
       if (myDialogResult == DialogResult.No) { return; }

72. 从字符串中取数组

    string[] myArray;
   myArray= ls_str.Split(";".ToCharArray());

73. datagrid 在进行数据编辑的时候,点击更新或取消之外的按钮的时候,要注意:
 

 if (e.Item.Cells[0].Text == null || e.Item.Cells[0].Text.ToString().Trim() == "" )
   {
    Response.Write("");
    return;
   }

75.  删除按钮(datagrid 的 DataBound事件)
 

              if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
   {

    LinkButton button = (LinkButton) e.Item.FindControl("lb_delete");
    
    button.Attributes.Add ("onclick","return confirm (\"确定要删除此项记录吗?\");");

76.   编辑框的数据的提取(datagrid 的 ItemCreated事件) 给编辑框赋值

    if (e.Item.ItemType == ListItemType.EditItem)
   {
    TextBox TextBox1 = (TextBox) e.Item.FindControl("TextBox1");
    DataRowView drv = (DataRowView)e.Item.DataItem;
    //
    if(drv != null)
    {
     TextBox1.Text =  drv["name"].ToString();
    }

   }

77.    datagrid 的风格语法(在 之前)

      
         
         
         
         

78. panel 风格的设置   div_2.Style.Add("Top ","0");

79. 页面的设置
   
  
    class="table_title_text"  //无颜色 大字
    class="table_title_text_small"  //黑色 小字(很小)
    class="table_border"      //黑框   小字
    class="table_title_row"   //蓝色  小字、
    class="table_even_row"   //灰色  小字、
    class="table_odd_row"   //灰色(更灰)  小字
   
80. 日期格式 (日期转化为字符串) ld_date.tostring("yyyy-MM-dd")

81. 手工生成dataset (外部) 临时table
    
                     DataSet myDataSet = new DataSet();
                                         DataTable dt = new DataTable();
   DataColumnCollection dcc = dt.Columns;
                        dt.TableName = "Table";
   DataColumn dc = new DataColumn("a01", typeof(System.String));
   dcc.Add(dc);
   dc = new DataColumn("a02", typeof(System.String));
   dcc.Add(dc);

   DataRow dr = dt.NewRow();
   dr[0] = "asdfasdf";
   dr[1] = "rrrrrrrrr";
   
   dt.Rows.Add(dr);

   myDataSet .Tables.Add(dt);


82.  datagrid分页删除的时候,取得最后一行(为当前行)

   if(e.Item.ItemIndex == 0 && DataGrid1.Items.Count == 1)
   {
    int pageIndex = DataGrid1.CurrentPageIndex - 1;
    if(pageIndex < 0){ pageIndex = 0;}
                                DataGrid1.CurrentPageIndex = pageIndex;
   }


83. datagrid分页新增的时候,取得最后一行(为当前行)
 
   if ( DataGrid1.CurrentPageIndex == DataGrid1.PageCount -1)
   
     //
    {
    
     if (DataGrid1.Items.Count == 10)
     {
      DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex + 1;
     }
    }
    else
    {
                                        DataGrid1.CurrentPageIndex = DataGrid1.PageCount -1;
        if (DataGrid1.Items.Count == 10)
     {
      DataGrid1.CurrentPageIndex = DataGrid1.PageCount;
      
     }
    }


85.    datagrid 中数字列的格式化设置 #号的作用是:0的时候不出现  {0:#.##} 
                  日期列的格式化设置: {0:yyyy-MM-dd}              
       在报表服务器中               #.##

86.   在datagrid  中增加行的序号 (增加一个模版列)

        DataGrid1.CurrentPageIndex*DataGrid1.PageSize+DataGrid1.Items.Count+1

87.   在asp.net 中定时器的使用

   在html中  :

            
   在c# 中 :  public string GetClass()
  {
   return "OK";
  }

88. 模拟浏览器的回退按钮

   javascript:window.history.back();
   javascript:window.history.forward();

89. 如何认让网页自动刷新

  
       //3是秒数
       //http://www.peopledaily.com.cn 是跳转的地址
    或者:
    window.location.reload();

90.  使网页的框获得焦点

        

91.  在网页上使回车键变成tab键

   
  
 

92. 在网页上如何得到按键的值

  

93. 菜单属性设置

  
       Width="144px" BackImageUrl="images/leftbg.jpg">
    
           GroupSelected="0" GroupSpacing="0" ButtonBorderSize="1" BackgroundImage="images/menu/menu_bj.gif"
      ButtonBackgroundImage="images/PanelBegin2.gif" InnerHighlightColor="#E1E1E1" SelectedButtonBackgroundImage="images/PanelBegin2.gif">

   


94. 使用变量代替html 字符
   <% =get_title() %>

95. 数组的赋值    

                string[] ls_cs = new string[2] ;
                ls_cs[0] = "";

96. 


97.   网页的父子关系

");


98.  格式化数字的小数位数(2位小数)

     <%# DataBinder.Eval(Container.DataItem, "Price", "{0:n2}") %>
     <%# DataBinder.Eval(Container.DataItem, "Price", "{0:#.##}") %>
     ld_dec_sz =  Math.Roundld_dec_sz,2) //对数值进行格式化
 
99.   判断字节数

     System.Text.Encoding.Default.GetByteCount(str)

100. HttpContext.Current.Response.Write(""); //显示提示框

101. GridView 表头合并的问题
       private void NewRenderMethod(HtmlTextWriter writer, Control ctl)
    {
      
        writer.Write("联系电话\n");
        writer.Write("111333");
      
    }
    //
    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        ListItemType lit = (ListItemType)e.Row.RowType;
             if(ListItemType.Header == lit)
             {
                 e.Row.SetRenderMethodDelegate(new RenderMethod(NewRenderMethod));
             }
    }

102. 备份 恢复 数据库

   backup database sbxxxt2 to disk='d:\sbxxxt_data.bak'


   restore filelistonly from disk='d:\sbxxxt_data.bak'

   load database sbxxxt2                  
    from disk='d:\sbxxxt_data.bak'
    with recovery,
    replace,
    move 'aaa ' to 'd:\sbxxxt2_data.mdf',
    move 'aaa_log'  to 'd:\sbxxxt2_log.ldf'
    //
    select filename from sysdatabases where name = 'master'   //取得数据库的安装路径
    //

103. 取得c# windowform 程序的执行路径
    
    Application.StartupPath

104. C# windows程序的提示

              DialogResult myDialogResult = new DialogResult();
           myDialogResult = MessageBox.Show("是否真的要创建数据库?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
           if (myDialogResult == DialogResult.No) { return; }

105. 从域中获取用户名:

       准备工作: (1. 我的电脑属性加入域:如:myn.com 2. 网络连接 DNS设置域服务器为DNS服务器   )
       DirectorySearcher ds = new  DirectorySearcher();
       ds.SearchRoot = new DirectoryEntry("LDAP://DC=myn,DC=com");
       ds.Filter = "(|(&(objectCategory=user)(name=*)))";
       ds.PropertiesToLoad.Add("name");
       ds.PropertiesToLoad.Add("sAMAccountName");
       ds.SizeLimit = 10000;
       ds.PageSize = 10000;
       ds.ServerTimeLimit = TimeSpan.FromMinutes(5);
        try
        {
           // start searching
            SearchResultCollection src = ds.FindAll();
            foreach (SearchResult sr in src)
            {
                string tmp = sr.GetDirectoryEntry().Path.ToString();
                string tmp1 = tmp.Substring(7, tmp.Length - 14);
                string login = sr.GetDirectoryEntry().Properties["sAMAccountName"].Value.ToString();
                string strIns = "INSERT INTO adDeptManTemp (NoteValue, manName, manLogin) VALUES ('" + tmp + "','" + tmp1 + "','" + login + "')";
            }
            src.Dispose();
        }
        catch (Exception err)
        {
            Response.Write("");
        }

106. 根据域的用户名和口令登录

         try
        {

            DirectoryEntry dr = new DirectoryEntry("LDAP://DC=myn,DC=com", TextBox_user.Text, TextBox_kl.Text, AuthenticationTypes.Secure);
            if (dr.Name != string.Empty)
            {
                string sss = dr.Name;
            }
        }
        catch (Exception err)
        {
            string sss = err.Message.Trim();
        }

107.   windows程序调用ie

      System.Diagnostics.Process.Start("IExplore.exe", "http://www.sina.com.cn");

108.  左连接
 
      select rtrim(adtype.s_name) as s_name from zhwl_lsh LEFT OUTER JOIN adtype ON  zhwl_lsh.f13 = adtype.f11 where              zhwl_lsh.f13 = adtype.f11

109. sql语法

      case 用法: CASE WHEN price IS NULL THEN 'Unpriced' WHEN price < 10 THEN 'Bargain' WHEN price BETWEEN 10 and 20 THEN                  'Average' ELSE 'Gift to impress relatives' END

110. 判断网络连通

   static bool IsOnLine()
        {
            NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface adapter in adapters)
            {
                IPInterfaceProperties Propertims = adapter.GetIPProperties();
                if (adapter.OperationalStatus != OperationalStatus.Up)
                {
                    continue;
                }
                //
                UnicastIPAddressInformationCollection addressCollection = Propertims.UnicastAddresses;
                foreach (UnicastIPAddressInformation addressInfo in addressCollection)
                {
                    if (IPAddress.IsLoopback(addressInfo.Address))
                    {
                        continue;
                    }
                    //
                    if (addressInfo.Address.ToString() == IPAddress.IPv6None.ToString())
                    {
                        continue;
                    }
                    //
                    if (addressInfo.Address.ToString() == IPAddress.None.ToString())
                    {
                        continue;
                    }
                    //
                    return true;
                }
                //
            }
            //
            return false;
            //
        }


111. sql 注入 和 防范(不能录入单引号)
   
    [html]


[/html]
   

112.  如何在网页中 动态生成元素

      在页面上:
        作用是 进行定位
     在 代码里面:
          string str1=null;
   int j;
   for(j=1;j<=aa;j++)
    str1=str1+"
  ";
  imgid.InnerHtml=str1;

113. 如何在网页上 支持汉字(不是Uncode) 不出现乱码

   

115. 修改列的宽度(Sql)

     ALTER TABLE aaa ALTER COLUMN f13 char (30)

116. 抛出 一个 新异常

   throw new Exception(Public.globalErrorString);

117. 对Datagridview 的排序

    ListSortDirection direction;
            direction = ListSortDirection.Descending;

            dataGridView1.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.None;
            dataGridView1.Sort(dataGridView1.Columns[0], direction);

118. 得到客户端的IP地址
     
      Request.UserHostAddress.ToString()   //用于asp.net
      ip=Request.ServerVariables("Local_Addr") //第二种用法
      System.Web.HttpContext.Current.Request.UserHostAddress //用于webservices或者网站
      //发布以后 起作用 调试的时候 得到127.0.0.1
119. 下载文件的IIS设置 (自动更新)
  
     在"MIME 类型"框中键入
     .*
     application/octet-stream
    

120. 如何使用多线程(带参数使用)
    
      //Thread thNew = new Thread(new ParameterizedThreadStart(Show_Progress));
                            //thNew.Start(myArrayList);
        private void Show_Progress(object myArrayList)
        {
            ArrayList ArrayList_Current = (ArrayList)myArrayList;
            if (myFTP.Put(ArrayList_Current[0].ToString() + ArrayList_Current[1].ToString(), ArrayList_Current[2].ToString()) == false)
            {
                MessageBox.Show(UseScene.textBox_Photo + "上传失败\r\n" + Public.globalErrorString, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

            }
            timer_UpLoad.Stop();
        }
       如果不带参数(Thread thNew = new Thread(new ThreadStart(Show_Progress));)

121.   访问FTP

          ftp://sa:[email protected]/

122. 
    c#安装盘如何将卸载的快捷方式放到菜单上?

   将msiexec.exe 文件 复制到安装文件目录下
   创建这个文件的快捷方式 并设置快捷方式的属性
   Arguments为 /x{[ProductCode]}

123. 如何在下载安装盘的时候 保留一部分文件?
   
   选择这个文件 点击属性Permanent 将属性设置为:True

126. 数据库分区

     1. Create PARTITION FUNCTION 分区函数名称 (datetime) AS RANGE RIGHT FOR VALUES
             ('2008-01-01', '2008-04-02', '2008-07-03','2008-10-03', '2009-01-03')

     2. Create PARTITION SCHEME 分区架构名称 as PARTITION 分区函数名称 ALL to ([PRIMARY])

      3. ALTER TABLE 表名     DROP CONSTRAINT 索引名称
                WITH(  MOVE TO 分区架构名称(列名))


    (须为 聚集索引)

127.  关于datagridview 中数字的表示
 

     1. 带小数的 #,##0.00;-#,##0.00;'' 整数     0;-0;''

128. 自定义事件:
     //定义委托
     public delegate void peijHandler(object sender, peij e);
    
    //定义事件参数
    public class peij : EventArgs
    {

        private String _itemName;

        public peij(string itemName)
        {

            _itemName = itemName;
        }

        public string ItemName
        {
            get { return _itemName; }
            set { _itemName = value; }
        }
    }
    //在控件类里面填写下面的代码
     public partial class UserControl1 : UserControl
     {
          public event peijHandler peij01; //定义事件
           private void button1_Click(object sender, EventArgs e)
        {
            peij BeforeArgs = new peij("888");
            if (peij01 != null)
            {
                peij01(button1, BeforeArgs);
            }

        }
     }
    经过上面几步 就可以在控件UserControl1上自定义了一个事件 这个事件执行的方法再在这个控件的事件里面写

129. 委托的用法:
      public delegate string mydl (string my_cs);
       public partial class Form1 : Form
    {
        public string ff_1(string my_cs)
        {
            return my_cs;
        }
         private void button1_Click(object sender, EventArgs e)
        {
            mydl aaa = new mydl(ff_1);
            string aa = aaa("aaa");

            MessageBox.Show(aa);
        }
    }
//////////////////////wpf/////////////////////////////////////////////////////
//////////////////////wpf/////////////////////////////////////////////////////
128. wpf 中 listview 的数据绑定
    
           
               
                   
                   
               

           

       

129. 动态添加事件 (自定义事件)

     myBtn.Click += new System.EventHandler(UpdateClick);       
     protected void UpdateClick(object sender, EventArgs e)
        {
            Button button = (Button)sender;
            MessageBox.Show(button.Name);
        }

     rpbtn.Click += new System.Windows.RoutedEventHandler(Increase);
     void Increase(object sender, RoutedEventArgs e)
        { }
    获取动态风格
    myToolTip.Style = (Style) FindResource("Simple");

130 wpf 滚动控件 

131. 动态绑定 (依赖项属性)
    绑定其他控件的属性
     Height="{Binding ElementName=Slider1,Path=Value}"        //绑定其他控件的属性
    "{DynamicResource {x:Static SystemColors.MenuHighlightBrushKey}}" 绑定系统的颜色
    下面通过代码来绑定
    Button b = sender as Button;
    b.Background = (Brush)this.FindResource("RainbowBrush");

   //Rectangle1 是控件的名称  Height 是控件的属性

    通过代码来绑定:
    Binding binding = new Binding();  
    binding.Source = this.slider1;  
    binding.Path = new PropertyPath("Value");  
    this.textBox1.SetBinding(TextBox.TextProperty, binding);   

132. 对风格进行赋值

    Style="{StaticResource 关键字}"
    Style="{StaticResource Triggers}"

133. wpf控件 Slider 的属性:
     Name="mySlider" (控件名称)Width="219" Height = "100"
     Orientation="Horizontal" (是水平Horizontal还是垂直Vertical)
     Value="0"  (目前的箭头所在的值)
     Minimum="10" (最小数值)
     Maximum="10" (最大数值)
     TickPlacement="BottomRight" (刻度放置的位置)
     AutoToolTipPlacement="BottomRight" (是否有提示以及提示出现的位置)
     AutoToolTipPrecision="2" (提示数字的小数位数)
     TickFrequency="3" (移动频率)
     IsSnapToTickEnabled="True" (移动最少一格TickFrequency 不走刻度中间)
     IsDirectionReversed="True" (获取或设置Value 的增加方向是否与默认方向反向)
     IsMoveToPointEnabled="True"
     (是否立即将Slider 的Thumb 移动到在鼠标指针悬停在Slider 轨道的上方时鼠标单击的位置)
     Ticks="0, 1.1, 2.5, 3"(以不规则间隔沿Slider 创建刻度线)
     IsSelectionRangeEnabled="true"(获取或设置TickBar 是否显示选择范围)
     SelectionStart="1.1"(获取或设置Slider 的指定选择内容的最小值)
     SelectionEnd="3"  (获取或设置Slider 的指定选择内容的最大值)
     代码设置不规则的刻度线
      DoubleCollection tickMarks = new DoubleCollection();
            tickMarks.Add(1.1);
            tickMarks.Add(1.3);
            tickMarks.Add(2.0);
            tickMarks.Add(7.0);
            tickMarks.Add(10.0);
     hslider.Ticks = tickMarks;

134. wpf控件 ProgressBar的属性:
        类:Duration (处于活动状态的持续时间)
        Duration duration = new Duration(TimeSpan.FromSeconds(1));(1秒)
        类:DoubleAnimation(使其在指定的时间内由起点值到达终点值,从而形成动画效果)
        DoubleAnimation doubleanimation = new DoubleAnimation(0,100.0, duration);
        doubleanimation.RepeatBehavior = RepeatBehavior.Forever;(永远做下去)
        doubleanimation.RepeatBehavior = new RepeatBehavior(5);(做5次)
     ProgressBar1.IsIndeterminate = true;
     (该值指示进度条是使用重复模式报告一般进度,还是基于Value 属性报告进度)
    
135. wpf控件 定时器
     DispatcherTimer closeTimer = new DispatcherTimer(DispatcherPriority.Normal);

       closeTimer.Interval = TimeSpan.FromSeconds(2);
       closeTimer.Tick += new EventHandler(TimeOutPopup);

       private void TimeOutPopup(object sender, EventArgs e)
        {
            myPopup.IsOpen = false;
            closeTimer.Stop();
        }

136. wpf控件 Popup
      PlacementTarget="{Binding ElementName = myEllipse}"
       获取或设置当打开Popup 控件时该控件相对于其放置的元素
      PlacementRectangle="0,0,30,50" 获取或设置当打开Popup 控件时该控件相对于其放置的矩形
      VerticalOffset="20" 获取或设置目标原点与弹出项对齐点之间的垂直距离
      HorizontalOffset="20" 获取或设置目标原点与弹出项对齐点之间的水平距离
      Placement="Bottom"
      获取或设置Popup 控件打开时的控件方向,并指定Popup 控件在与屏幕边界重叠时的控件行为
      PopupAnimation="Fade"
      AllowsTransparency="True" 该值指示Popup 控件是否可以包含透明内容
      PopupAnimation:指示显示窗口时是否使用动画,只有在AllowsTransparency 等于true时此属性才有用
          PopupAnimation="Fade" 褪色或者出现
          PopupAnimation="None" 没有动画
          PopupAnimation="Scroll" 从左上角出现到制定位置
          PopupAnimation="Slide"  从上面过来
      IsOpen="{Binding ElementName=myCheckBox,Path=IsChecked}" 是否出现绑定到myCheckBox
      下面是自定义位置的例子:
      myPopup.CustomPopupPlacementCallback =
                new CustomPopupPlacementCallback(placePopup);
       public CustomPopupPlacement[] placePopup(Size popupSize, Size targetSize, Point offset)
        {
            CustomPopupPlacement[] ttplaces =
                    new CustomPopupPlacement[] { new CustomPopupPlacement() };
            ttplaces[0].Point = new Point(-50, 90);
            ttplaces[0].PrimaryAxis = PopupPrimaryAxis.Vertical;
            return ttplaces;
        }
136. wpf控件 TextBlock
     Name="PopupContent"  FontFamily="Courier New" 字体名称
     Background="Beige"
     FontSize="12"
     Width="75" 
     FontSize. 文字大小,以像素为单位
     TextWrapping="Wrap" 获取或设置TextBlock 对文本进行换行的方式
     Text="郑文亮"    文本
     FontStyle="Normal"  可设置两种值: Normal, Italic(斜体)
     FontStetch. 按比例缩放文字,它提供一些枚举值 如下表
     FontWeight. 文字的胖瘦。可设置为
          Thin, ExtraLight, Light, Normal, Medium, SemiBold, Bold, ExtraBold, Black, ExtraBlack.            这些值是否起作用还要取决于你所选择的字体      
     Foreground.  通过这个属性可以设置文字的前景色填充。不但可以使用颜色值,还可以通过设置solid             color, gradient, image 及 video笔刷进行填充。还是那句话:很好,很强大
     TextDecorations. 对文字的修饰,当前Silverlight2只支持underline
     Runs. 你可以在TextBlock中使用Run标签创建内联元素,每个Run都可以设置上面提到的属性
     TextWrapping属性的值为“Wrap”来强制其换行
     LineBreak标签,它的作用相当于html中的
  换行标签
    
137. wpf控件 Canvas
    
138. wpf控件 Grid(wpf)
     Grid.SetRow(txtbox, i);        //TextBox放在第i+1行
     Grid.SetColumn(txtbox, 1);     //TextBox放在第2列
     Grid.SetColumnSpan(txtbox, 3); //TextBox跨越到最后一列(第4列) 
     grid.Children[1].Focus();  // 为第一个TextBox设置焦点

    
        
        
    

      
           
           
           
       

138. wpf类 动画
       BeginStoryboard
     一个触发器操作,该操作可启动 Storyboard 并将其动画分发给动画的目标对象和属性
       
          
                          Storyboard.TargetName="旋转变形的名称"
              Storyboard.TargetProperty="控件属性"  
                     控件属性=(RotateTransform.Angle) 获取或设置顺时针旋转角度(以度为单位)
              From="0" To="360" Duration="0:0:5" AutoReverse="True" />
          

       

        //下面的Canvas 是给上面用的
                      Margin="150" >
               
                   
               

        //下面是为按钮的转动 转动的按钮的属性就是这么设置
       

你可能感兴趣的:(c#编程经验)