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属性赋值。
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(); }
调用Web服务:请求因HTTP状态401失败:Unauthorized
作者:大鹏 发布于:2009-8-26 16:02 Wednesday
分类:Asp.Net 2.0
标签: c# webservice
“/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
堆栈跟踪:
文件编码批量转换小工具
作者:大鹏 发布于:2009-7-19 13:31 Sunday
分类:Asp.Net 2.0
标签: php c# 字符集 编码转换
最近又遇到了这种问题,需要将项目中所有的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]
C# 读取CAD文件缩略图(DWG文件)
作者:大鹏 发布于:2009-7-19 12:01 Sunday
分类:Asp.Net 2.0
标签: c# cad
[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]
C#编程过程中获取相对路径
作者:大鹏 发布于:2009-5-20 21:42 Wednesday
分类:Asp.Net 2.0
标签: c#
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;
关于FreeTextBox中的图片上传
作者:大鹏 发布于:2009-3-28 16:23 Saturday
分类:Asp.Net 2.0
标签: 经典 .net framework c#
在此文件夹内新建一个名为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]
sql server从 INSERT 返回 IDENTITY (自增长列)
作者:大鹏 发布于:2009-2-16 16:29 Monday
分类:Asp.Net 2.0
标签: 数据库 .net mssql-2005 c# sqlserver2005 vs2008
如何在执行 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? 应用程序中,可以运行以下语句:
LINQ学习笔记-Lambda表达式
作者:大鹏 发布于:2009-2-16 13:43 Monday
分类:Asp.Net 2.0
标签: .net framework c# vs2008 linq
总的来说,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]
GridView, DataGrid 中,DataFormatString语法汇总
作者:大鹏 发布于:2009-2-5 10:51 Thursday
分类:Asp.Net 2.0
标签: c# vs2005
DataFormatString="{0:格式字符串}"
在DataFormatString 中的 {0} 表示数据本身,而在冒号后面的格式字符串代表所们希望数据显示的格式;
数字、货币格式:
在指定的格式符号后可以指定小数所要显示的位数。例如原来的数据为「1.56」,若格式设定为 {0:N1},则输出为「1.5」。其常用的数值格式如下表所示:
使用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
[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的存储过程。
asp.net中上传文件大小限制
作者:大鹏 发布于:2008-11-19 11:54 Wednesday
分类:Asp.Net 2.0
标签: c# vs2005
在web.config中加入
<httpRuntime
executionTimeout="300"
maxRequestLength="102400"
useFullyQualifiedRedirectUrl="false"/>
其中maxRequestLength属性就是限制上传大小的,如设为"102400"即为100M
使用C#实现SQL Server2005的扩展聚合函数
作者:大鹏 发布于:2008-11-18 18:12 Tuesday
分类:Asp.Net 2.0
标签: 数据库 mssql-2005 c# sqlserver2005 vs2008
其中joinstr是一个聚合函数,功能是将每一组的某个字符串列的值首尾连接。上面的SQL也可以查询图2所示的结果。但遗憾的是,sql server2005并未提供可以连接字符串的聚合函数。下面我们就来使用C#来实现一个扩展聚合函数。
GridView中合并某列相同内容的行
作者:大鹏 发布于:2008-8-28 20:41 Thursday
分类:Asp.Net 2.0
标签: .net c#
MemberShip,角色,WebPart在web.config文件中的参数简述
作者:大鹏 发布于:2008-8-20 23:10 Wednesday
分类:Asp.Net 2.0
标签: .net mssql-2005 c#
<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]
Failed to update database "c:inetpubwwwrootWebSite1App_DataASPNETDB.MDF
作者:大鹏 发布于:2008-8-20 16:19 Wednesday
分类:Asp.Net 2.0
标签: .net mssql-2005 c#
快速的解决当前问题的方法
把两个文件的read-only去掉...加一个app_offline.htm,然后运行,然后去掉加上的app_offline.htm,就可以了.
asp.net password的txt属性无法传值的问题
作者:大鹏 发布于:2008-8-20 16:16 Wednesday
分类:Asp.Net 2.0
标签: .net c#
加入如下代码:
private void Page_Load(object sender, System.EventArgs e)
{
Password.Attributes .Add ("value",Request["Password"]);
//Password为TextBox的name
}
Visual Studio 2008的Setup project项目添加卸载功能
作者:大鹏 发布于:2008-8-10 15:44 Sunday
分类:Asp.Net 2.0
标签: .net c# vs2005
在文件系统视图中选择应用程序文件,在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]
利用C#将Excel中将连续多行相同数据项合并
作者:大鹏 发布于:2008-7-14 21:26 Monday
分类:Asp.Net 2.0
标签: 数据库 .net mssql-2005 c# sqlserver2005 excel reportingservice
于是想到一个将数据生成Excel文件再将连续多行相同数据进行合并的办法,感觉这个办法还是比较不错的。
一个CSharp写的gzip模块
作者:大鹏 发布于:2008-7-4 22:51 Friday
分类:Asp.Net 2.0
标签: .net c#
/**
* gzip.ashx
* by rodiniz
*/