静坐常思己过,闲谈莫论人非,能受苦乃为志士,肯吃亏不是痴人,敬君子方显有德,怕小人不算无能,退一步天高地阔,让三分心平气和,欲进步需思退步,若着手先虑放手,如得意不宜重往,凡做事应有余步。持黄金为珍贵,知安乐方值千金,事临头三思为妙,怒上心忍让最高。切勿贪意外之财,知足者人心常乐。若能以此去处事,一生安乐任逍遥。

WebService开启Session支持

作者:大鹏 发布于:2012-3-27 8:30 Tuesday 分类:Asp.Net 2.0
标签: c# webservice

以前也遇到过这个问题,当时也是找了很多资料,这次要用的时候又忘了。今天再次记录下来备忘一下。

除了要在WebServicce的方法名上加上EnableSession = true之外,在客户端调用的时候还要加上一句:

DBAccess.DBAccessService dbService = new DBAccess.DBAccessService();

dbService.CookieContainer = new System.Net.CookieContainer();

给WebService对象的CookieContainer属性赋值。


评论(0) 引用(0) 浏览(8775)

ContextMenuStrip关联多个控制时的事件调用

作者:大鹏 发布于:2012-3-26 16:08 Monday 分类:Asp.Net 2.0
标签: c#

当多个控件关联同一个ContextMenuStrip 右键菜单的时候,我们可以对功能菜单调用同一个方法。

如:有多个DataGridView控件,同时关联了一个ContextMenuStrip,我们可以使用以下代码:

点击查看原图

private void copyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DataGridView g = (DataGridView)cmsRightMenu.SourceControl;
            Clipboard.SetText(g.GetClipboardContent().GetData(DataFormats.Text).ToString());
        }

        private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DataGridView g = (DataGridView)cmsRightMenu.SourceControl;
            g.SelectAll();
        }

 


评论(0) 引用(0) 浏览(9378)

调用Web服务:请求因HTTP状态401失败:Unauthorized

作者:大鹏 发布于:2009-8-26 16:02 Wednesday 分类:Asp.Net 2.0
标签: c# webservice

调用WebService时出现401错误的解决方法:

“/CallService”应用程序中的服务器错误。
--------------------------------------------------------------------------------

请求因 HTTP 状态 401 失败: Unauthorized。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Net.WebException: 请求因 HTTP 状态 401 失败: Unauthorized。

源错误:


行 81:         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/HelloWorld",

RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/",

Use=System.Web.Services.Description.SoapBindingUse.Literal,

ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
行 82:         public string HelloWorld() {
行 83:             object[] results = this.Invoke("HelloWorld", new object[0]);
行 84:             return ((string)(results[0]));
行 85:         }

源文件: D:\Cofco\CofcoMeeting\VSProjects\Cofco.Meeting\Cofco.Meeting.CallService\Web References\ApproveService\Reference.cs

   行: 83

堆栈跟踪:

阅读全文>>


评论(0) 引用(0) 浏览(27457)

文件编码批量转换小工具

作者:大鹏 发布于:2009-7-19 13:31 Sunday 分类:Asp.Net 2.0
标签: php c# 字符集 编码转换

     很多时候,由于需要将一个项目中的所有文件批量转换成另外一种编码,手动一个一个的用DreamWeaver或Editplus之类的工具转换要浪费大量的时间。
     最近又遇到了这种问题,需要将项目中所有的PHP文件批量转换成UTF-8的编码。于是使用C#写了一个批量转换的工具,直接在CMD
命令行中执行就可以了,里面有详细的使用说明。共享出来给一些有似类需要朋友下载使用。
使用方法:
[code]
Usage:
     CharsetConverter source destination [-s] [-m match] [-o OriginalCharset] [-
t TargetCharset] [-h]
Options:
     source                     需要进行编码的文件所在位置,必需为文件夹路径
     destination                转换后的文件存放位置
     -s                         包含子文件夹下的文件
     -m match                   要进行转换的文件,过滤的表达式
     -o OriginalCharset         原文件字符集
     -t TargetCharset           目标字符集
     -h                         查看本工具使用说明
Examples:
CharsetConverter e:\website\MyOA d:\temp -s -m *.php -o gb2312 -t utf-8
[/code]

阅读全文>>


评论(0) 引用(0) 浏览(10637)

C# 读取CAD文件缩略图(DWG文件)

作者:大鹏 发布于:2009-7-19 12:01 Sunday 分类:Asp.Net 2.0
标签: c# cad

在不使用任务插件的情况下读取DWG文件的缩略图,以便在没有安装AutoCAD的计算机上浏览。
[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace 浏览dwg
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ViewDWG viewDwg = new ViewDWG();
            pictureBox1.Image = viewDwg.GetDwgImage("c:\\1.dwg");
        }
        class ViewDWG
        {
            struct BITMAPFILEHEADER
            {
                public short bfType;
                public int bfSize;
                public short bfReserved1;
                public short bfReserved2;
                public int bfOffBits;
            }
            public Image GetDwgImage(string FileName)
            {
                if (!(File.Exists(FileName)))
                {
                    throw new FileNotFoundException("文件没有被找到");
                }
                FileStream DwgF; //文件流
                int PosSentinel; //文件描述块的位置
                BinaryReader br; //读取二进制文件
                int TypePreview; //缩略图格式
                int PosBMP;       //缩略图位置
                int LenBMP;       //缩略图大小
                short biBitCount; //缩略图比特深度
                BITMAPFILEHEADER biH; //BMP文件头,DWG文件中不包含位图文件头,要自行加上去
                byte[] BMPInfo;       //包含在DWG文件中的BMP文件体
                MemoryStream BMPF = new MemoryStream(); //保存位图的内存文件流
                BinaryWriter bmpr = new BinaryWriter(BMPF); //写二进制文件类
                Image myImg = null;
                try
                {
                    DwgF = new FileStream(FileName, FileMode.Open, FileAccess.Read);   //文件流
                    br = new BinaryReader(DwgF);
                    DwgF.Seek(13, SeekOrigin.Begin); //从第十三字节开始读取
                    PosSentinel = br.ReadInt32(); //第13到17字节指示缩略图描述块的位置
                    DwgF.Seek(PosSentinel + 30, SeekOrigin.Begin); //将指针移到缩略图描述块的第31字节
                    TypePreview = br.ReadByte(); //第31字节为缩略图格式信息,2 为BMP格式,3为WMF格式
                    if (TypePreview == 1)
                    {
                    }
                    else if (TypePreview == 2 || TypePreview == 3)
                    {
                        PosBMP = br.ReadInt32(); //DWG文件保存的位图所在位置
                        LenBMP = br.ReadInt32(); //位图的大小
                        DwgF.Seek(PosBMP + 14, SeekOrigin.Begin); //移动指针到位图块
                        biBitCount = br.ReadInt16(); //读取比特深度
                        DwgF.Seek(PosBMP, SeekOrigin.Begin); //从位图块开始处读取全部位图内容备用
                        BMPInfo = br.ReadBytes(LenBMP); //不包含文件头的位图信息
                        br.Close();
                        DwgF.Close();
                        biH.bfType = 19778; //建立位图文件头
                        if (biBitCount < 9)
                        {
                            biH.bfSize = 54 + 4 * (int)(Math.Pow(2, biBitCount)) + LenBMP;
                        }
                        else
                        {
                            biH.bfSize = 54 + LenBMP;
                        }
                        biH.bfReserved1 = 0; //保留字节
                        biH.bfReserved2 = 0; //保留字节
                        biH.bfOffBits = 14 + 40 + 1024; //图像数据偏移
                        //以下开始写入位图文件头
                        bmpr.Write(biH.bfType); //文件类型
                        bmpr.Write(biH.bfSize); //文件大小
                        bmpr.Write(biH.bfReserved1); //0
                        bmpr.Write(biH.bfReserved2); //0
                        bmpr.Write(biH.bfOffBits); //图像数据偏移
                        bmpr.Write(BMPInfo); //写入位图
                        BMPF.Seek(0, SeekOrigin.Begin); //指针移到文件开始处
                        myImg = Image.FromStream(BMPF); //创建位图文件对象
                        bmpr.Close();
                        BMPF.Close();
                    }
                    return myImg;
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
        }

    }
}[/code]


评论(0) 引用(0) 浏览(12679)

C#编程过程中获取相对路径

作者:大鹏 发布于:2009-5-20 21:42 Wednesday 分类:Asp.Net 2.0
标签: c#

1.获取和设置当前目录的完全限定路径。

string str = System.Environment.CurrentDirectory;

Result: C:\xxx\xxx

2.获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

string str = System. Windows .Forms.Application.StartupPath;

Result: C:\xxx\xxx

3.获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名。

string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;

Result: C:\xxx\xxx\xxx.exe

4.获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。

string str = System.AppDomain.CurrentDomain.BaseDirectory;

阅读全文>>


评论(0) 引用(0) 浏览(38522)

关于FreeTextBox中的图片上传

作者:大鹏 发布于:2009-3-28 16:23 Saturday 分类:Asp.Net 2.0
标签: 经典 .net framework c#

  1.如何设置FTB的example?
在此文件夹内新建一个名为bin的文件夹,并把你想用的版本的FreeTextBox.dll 放进去.
在此文件内新建一个名为web.config的文件,写入以下代码:

[code]<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.web>
        <httpHandlers>
            <add verb="GET" path="FtbWebResource.axd" type="FreeTextBoxControls.AssemblyResourceHandler, FreeTextBox" />
    </httpHandlers>
</system.web>
</configuration>[/code]

阅读全文>>


评论(0) 引用(0) 浏览(3915)

sql server从 INSERT 返回 IDENTITY (自增长列)

作者:大鹏 发布于:2009-2-16 16:29 Monday 分类:Asp.Net 2.0
标签: 数据库 .net mssql-2005 c# sqlserver2005 vs2008

[b]从 INSERT 返回 IDENTITY [/b]
如何在执行 SQL INSERT 后检索 IDENTITY 值。通常,问题不在于如何编写检索值的查询,而在于在哪里以及何时进行检索。在 SQL Server 中,下面的语句可用于检索由最新在活动数据库连接上运行的 SQL 语句所创建的 IDENTITY 值:

SELECT @@IDENTITY
这个 SQL 语句并不复杂,但需要记住的一点是:如果这个最新的 SQL 语句不是 INSERT,或者您针对非 INSERT SQL 的其他连接运行了此 SQL,则不会获得期望的值。您必须运行下列代码才能检索紧跟在 INSERT SQL 之后且位于同一连接上的 IDENTITY,如下所示:

INSERT INTO Products (ProductName) VALUES ('Chalk')
SELECT @@IDENTITY
在一个连接上针对 Northwind 数据库运行这些查询将返回一个名称为 Chalk 的新产品的 IDENTITY 值。所以,在使用 ADO 的 Visual Basic? 应用程序中,可以运行以下语句:

阅读全文>>


评论(1) 引用(0) 浏览(5811)

LINQ学习笔记-Lambda表达式

作者:大鹏 发布于:2009-2-16 13:43 Monday 分类:Asp.Net 2.0
标签: .net framework c# vs2008 linq

一、什么时候使用Lambda表达式
    
    总的来说,Lambda 表达式可以用在任何需要使用匿名方法,或是代理的地方。编译器会将Lambda表达式编译为标准的匿名方法(可以使用ildasm.exe or reflector.exe得到确认)。
    
    比如:    
[code] List<int> evenNumbers = list.FindAll(i => (i % 2) == 0);[/code]
    被编译为

[code]List<int> evenNumbers = list.FindAll(delegate (int i)
{
    return (i % 2) == 0;
});[/code]

阅读全文>>


评论(0) 引用(0) 浏览(3955)

GridView, DataGrid 中,DataFormatString语法汇总

作者:大鹏 发布于:2009-2-5 10:51 Thursday 分类:Asp.Net 2.0
标签: c# vs2005

DataFormatString格式字符串
DataFormatString="{0:格式字符串}"

在DataFormatString 中的 {0} 表示数据本身,而在冒号后面的格式字符串代表所们希望数据显示的格式;

数字、货币格式:
在指定的格式符号后可以指定小数所要显示的位数。例如原来的数据为「1.56」,若格式设定为 {0:N1},则输出为「1.5」。其常用的数值格式如下表所示:

阅读全文>>


评论(0) 引用(0) 浏览(4094)

使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)

作者:大鹏 发布于:2008-11-19 22:45 Wednesday 分类:Asp.Net 2.0
标签: 数据库 .net mssql-2005 c# vs2005 sqlserver2005 vs2008

原文地址:http://www.dotnetbips.com/articles/70eff218-3da0-4f6f-8f8d-eeea65193f2c.aspx
[url=http://www.dotnetbips.com/articles/70eff218-3da0-4f6f-8f8d-eeea65193f2c.aspx][原文源码下载][/url]


[翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)

原文发布日期:2007.06.17
作者:Bipin Joshi
翻译:webabcd


介绍
通常,开发人员使用的是T-SQL来创建SQL Server的存储过程、函数和触发器。 而现在的SQL Server 2005已经完全支持.NET通用语言运行时(CLR)了。 这就意味着,你可以使用.NET的语言,如C#、VB.NET之类的来开发SQL Server的存储过程、函数和触发器。 SQL Server 和 CLR 的集成给我们带来了n多好处,如实时编译、类型安全、增强的安全性以及增强的编程模型等。 本文中,我将向大家演示如何使用C#创建SQL Server的存储过程。

阅读全文>>


评论(0) 引用(0) 浏览(67907)

asp.net中上传文件大小限制

作者:大鹏 发布于:2008-11-19 11:54 Wednesday 分类:Asp.Net 2.0
标签: c# vs2005

asp.net 中上传文件大小限制的方法:
在web.config中加入
<httpRuntime
executionTimeout="300"
maxRequestLength="102400"
useFullyQualifiedRedirectUrl="false"/>
其中maxRequestLength属性就是限制上传大小的,如设为"102400"即为100M


评论(0) 引用(0) 浏览(4192)

使用C#实现SQL Server2005的扩展聚合函数

作者:大鹏 发布于:2008-11-18 18:12 Tuesday 分类:Asp.Net 2.0
标签: 数据库 mssql-2005 c# sqlserver2005 vs2008

[code]select xh, dbo.joinstr(value) from t_table group by xh[/code]

其中joinstr是一个聚合函数,功能是将每一组的某个字符串列的值首尾连接。上面的SQL也可以查询图2所示的结果。但遗憾的是,sql server2005并未提供可以连接字符串的聚合函数。下面我们就来使用C#来实现一个扩展聚合函数。

阅读全文>>


评论(0) 引用(0) 浏览(3961)

GridView中合并某列相同内容的行

作者:大鹏 发布于:2008-8-28 20:41 Thursday 分类:Asp.Net 2.0
标签: .net c#

点击在新窗口中浏览此图片

阅读全文>>


评论(0) 引用(0) 浏览(498965)

MemberShip,角色,WebPart在web.config文件中的参数简述

作者:大鹏 发布于:2008-8-20 23:10 Wednesday 分类:Asp.Net 2.0
标签: .net mssql-2005 c#

[code]
<membership defaultProvider="AspNetSqlProvider">
       <providers>
         <add connectionStringName="在配置文件中已存在的数据库连接字符串名称"
             applicationName="/"
             description=""
             minRequiredPasswordLength="6"
             minRequiredNonalphanumericCharacters="0"
             requiresUniqueEmail="false"
             enablePasswordRetrieval="false"
             enablePasswordReset="false"
             requiresQuestionAndAnswer="false"
             passwordFormat="Hashed"
             name="AspNetSqlProvider"
             type="System.Web.Security.SqlMembershipProvider"/>
      </providers>
    </membership>
[/code]

阅读全文>>


评论(0) 引用(0) 浏览(5450)

Failed to update database &quot;c:inetpubwwwrootWebSite1App_DataASPNETDB.MDF

作者:大鹏 发布于:2008-8-20 16:19 Wednesday 分类:Asp.Net 2.0
标签: .net mssql-2005 c#

Failed to update database "c:\inetpub\wwwroot\WebSite1\App_Data\ASPNETDB.MDF" because the database is read-only."的解决办法

快速的解决当前问题的方法
把两个文件的read-only去掉...加一个app_offline.htm,然后运行,然后去掉加上的app_offline.htm,就可以了.


评论(0) 引用(0) 浏览(4474)

asp.net password的txt属性无法传值的问题

作者:大鹏 发布于:2008-8-20 16:16 Wednesday 分类:Asp.Net 2.0
标签: .net c#

PostBack的时候,如果TextBox的TextMode为Password的话,是没有value属性传递的,所以密码框是空的

加入如下代码:

private void Page_Load(object sender, System.EventArgs e)
  {
   Password.Attributes .Add ("value",Request["Password"]);
    //Password为TextBox的name
  }


评论(1) 引用(0) 浏览(5634)

Visual Studio 2008的Setup project项目添加卸载功能

作者:大鹏 发布于:2008-8-10 15:44 Sunday 分类:Asp.Net 2.0
标签: .net c# vs2005

在打包项目中添加文件msiexec.exe(一般在c:\windows\system32(系统目录中)找到)。
在文件系统视图中选择应用程序文件,在msiexec.exe上单击右键选择“创建快捷方式”,重命名快捷方式为“uninst”.
更改此快捷方式Argmuments为“/x {产品ID}”,产品ID的值为打包项目的ProductCode属性值。
注:ProudctCode(选择解决方案资源管理根目录如Setup1,再查看属性标签,不是右键属性)

或者是在应该程序中加入下面代码:
[code]
string sysroot = System.Environment.SystemDirectory;
System.Diagnostics.Process.Start(sysroot + "\\msiexec.exe", "/x {850FED90-20D0-4EBA-BEDB-3D9DBA25F6EC} /qr");
[/code]



评论(0) 引用(0) 浏览(5138)

利用C#将Excel中将连续多行相同数据项合并

作者:大鹏 发布于:2008-7-14 21:26 Monday 分类:Asp.Net 2.0
标签: 数据库 .net mssql-2005 c# sqlserver2005 excel reportingservice

最后一直在研究Reporting services中将连续多行相同的数据项合并的问题,最后还是没有找到一个好的解决办法。显然可以使用“隐藏重复数据(HideDuplicates 属性)”将相同数据行显示为空,但是单无格边框还是无法隐藏,而且无法将重复数据进行竖直居中。
于是想到一个将数据生成Excel文件再将连续多行相同数据进行合并的办法,感觉这个办法还是比较不错的。
点击在新窗口中浏览此图片

阅读全文>>


评论(0) 引用(0) 浏览(21334)

一个CSharp写的gzip模块

作者:大鹏 发布于:2008-7-4 22:51 Friday 分类:Asp.Net 2.0
标签: .net c#

一个CSharp写的gzip模块
/**
* gzip.ashx
* by rodiniz
*/

阅读全文>>


评论(0) 引用(0) 浏览(4051)