十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用VB5 Winsock控件创建TCP/IP通讯程序 随着Windows 95中文版和Windows NT Server 4.0中文版的流行, Microsoft公司推出了相应平台上的开发软件: Visual Basic 5.0 中文企业 版。它为Windows环境下的网络开发提供了强大的工具,Winsock控件就是其中之一。 Winsock控件建立在TCP、UDP协议的基础上,完成与远程计算机的通信。即使对TCP/IP不太熟悉的用户,使用该控件也可以在十几分钟内创建一个简单的客户机/服务器程序。下面我们对Winsock控件的事件、方法、属性按其在程序中出现的顺序分别作详细的介绍,以便更好地理解程序源代码。
在吉隆等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、做网站 网站设计制作按需开发,公司网站建设,企业网站建设,高端网站设计,网络营销推广,成都外贸网站制作,吉隆网站建设费用合理。
使用了VB.NET开发一个访问excel读取数据并修改的小程序,有一些经验性的东西和大家共享,如果有误还请大家指正。
大致分为这样几个部分来说明:
1、 准备部分:
准备部分我们需要添加excel library的引用到工程中:我使用office2003,它的库文件为 Microsoft excel 11.0 object library。如果使用excel2000,那么它使用的是Microsoft excel 9.0 object library。
有需要时,我们添加Imports 命名空间。
我在这个程序中只是访问了excel的数据,不需要命名空间了哈。
2、 声明一些对象:
这些对象并不是都需要,前面三个应该有,后面的,你需要什么对象就声明:
Dim excelapp As Excel.Application ‘声明一个application对象
Dim excelworkbook As Excel.Workbook ‘声明一个工作簿对象
Dim excelsheet As Excel.Worksheet ‘声明一个工作表对象
等等…如:
Dim excelrange As Excel.Range ‘声明一个范围对象
3、 访问一个excel文件:
excelapp = New Excel.Application
excelworkbook = excelapp.Workbooks.Open(strfile) ‘访问到工作簿:这个strfile 是文件的路径,我从打开文件对话框中得到的。
excelsheet = excelworkbook.Sheets.Item(1) ‘访问到工作表:item使用索引值来得到sheet对象的引用
excelsheet.activate
我们可以得到此文件中的值:
定义一个string变量:
Dim strcellvalue as string
Strcellvalue=excelsheet.cells(1,1).value ‘得到A1单元格的内容。
修改的时候反过来就可以了:
excelsheet.cells(1,1).value= Strcellvalue
4、 善后:
在程序的每一个退出口操作excel对象,保存或者不保存:
Excelworkbook.save
Excelworkbook.close
Excelapp=nothing
5其它:
需要注意~上面的代码需要一些容错机制,比如:
If Not excelworkbook Is Nothing Then 这样的话来达到程序的正确运行
需要判断现在excel又没有打开。如果有excel进程正在运行。你的代码很可能会影响到打开的excel,像Excelworkbook.close这样的语句虽然前面已经很好的唯一指定了工作簿,但不能很武断的进行鲁莽的操作,我们需要判断现在excel的运行情况。
另外,VB.NET 读取Excel 2007的xlsx文件和读取老的.xls文件是一样的,都是用Oledb读取,仅仅连接字符串不同而已。读取xlsx 用的是Microsoft.Ace.OleDb.12.0;具体操作方法如下:
Public Shared Function GetExcelToDataTableBySheet(ByVal FileFullPath As String, ByVal SheetName As String) As DataTable
'string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + FileFullPath + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此连接只能操作Excel2007之前(.xls)文件
Dim strConn As String = ("Provider=Microsoft.Ace.OleDb.12.0;" "data source=") + FileFullPath ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"
'此连接可以操作.xls与.xlsx文件
Dim conn As New OleDbConnection(strConn)
conn.Open()
Dim ds As New DataSet()
Dim odda As New OleDbDataAdapter(String.Format("SELECT * FROM [{0}]", SheetName), conn)
'("select * from [Sheet1$]", conn);
odda.Fill(ds, SheetName)
conn.Close()
Return ds.Tables(0)
End Function
读取Excel文件时,可能一个文件中会有多个Sheet,因此获取Sheet的名称是非常有用的。根据Excel物理路径获取Excel文件中所有表名的具体操作方法如下:
Public Shared Function GetExcelSheetNames(ByVal excelFile As String) As [String]()
Dim objConn As OleDbConnection = Nothing
Dim dt As System.Data.DataTable = Nothing
Try
'string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + excelFile + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此连接只能操作Excel2007之前(.xls)文件
Dim strConn As String = ("Provider=Microsoft.Ace.OleDb.12.0;" "data source=") + excelFile ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"
'此连接可以操作.xls与.xlsx文件
objConn = New OleDbConnection(strConn)
objConn.Open()
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
If dt Is Nothing Then
Return Nothing
End If
Dim excelSheets As [String]() = New [String](dt.Rows.Count - 1) {}
Dim i As Integer = 0
For Each row As DataRow In dt.Rows
excelSheets(i) = row("TABLE_NAME").ToString()
i += 1
Next
Return excelSheets
Catch
Return Nothing
Finally
If objConn IsNot Nothing Then
objConn.Close()
objConn.Dispose()
End If
If dt IsNot Nothing Then
dt.Dispose()
End If
End Try
End Function
共享的方式常见的有三种
1、系统自带的网络共享
windows7 WIFI共享设置方法如下:
2、WIFI共享软件
常用软件如下:
WIFI共享大师
WIFI共享精灵
猎豹WiFi共享
360免费WIFI
160WIFI
3、WIFI硬件共享
常用硬件如下:
360随身wifi
腾讯全民wifi
百度wifi
hao123wifi
此外还有以下品牌相同功能的产品:
EDUP、COMFAST、必联(B-LINK)、美国网件(NETGEAR)
友讯(D-Link)、联普(TP-Link)、拓实(TUOSHI)、迅捷(FAST)
水星(MERCURY)、磊科(netcore)、腾达(TENDA)
出现地址错误是正常的,应为系统要求你一个网卡用来自身上网,无线网卡用来发送无线信号,最好的办法是使用第三方的方法,而不要使用Windows系统自动的共享,如果选择第三方软件推荐WIFI共享大师,针对天翼校园网,如果选择第三方硬件推荐360随身WIFI,稳定安全方便。
我不会VB,但是都是.net。c#的代码稍微转换一下就可以了。
C#实现访问网络共享文件夹,使用 WNetAddConnection2A 和 WNetCancelConnection2A。
在目标服务器建立共享文件夹,建立访问账号test;
public enum ERROR_ID
{
ERROR_SUCCESS = 0, // Success
ERROR_BUSY = 170,
ERROR_MORE_DATA = 234,
ERROR_NO_BROWSER_SERVERS_FOUND = 6118,
ERROR_INVALID_LEVEL = 124,
ERROR_ACCESS_DENIED = 5,
ERROR_INVALID_PASSWORD = 86,
ERROR_INVALID_PARAMETER = 87,
ERROR_BAD_DEV_TYPE = 66,
ERROR_NOT_ENOUGH_MEMORY = 8,
ERROR_NETWORK_BUSY = 54,
ERROR_BAD_NETPATH = 53,
ERROR_NO_NETWORK = 1222,
ERROR_INVALID_HANDLE_STATE = 1609,
ERROR_EXTENDED_ERROR = 1208,
ERROR_DEVICE_ALREADY_REMEMBERED = 1202,
ERROR_NO_NET_OR_BAD_PATH = 1203
}
public enum RESOURCE_SCOPE
{
RESOURCE_CONNECTED = 1,
RESOURCE_GLOBALNET = 2,
RESOURCE_REMEMBERED = 3,
RESOURCE_RECENT = 4,
RESOURCE_CONTEXT = 5
}
public enum RESOURCE_TYPE
{
RESOURCETYPE_ANY = 0,
RESOURCETYPE_DISK = 1,
RESOURCETYPE_PRINT = 2,
RESOURCETYPE_RESERVED = 8,
}
public enum RESOURCE_USAGE
{
RESOURCEUSAGE_CONNECTABLE = 1,
RESOURCEUSAGE_CONTAINER = 2,
RESOURCEUSAGE_NOLOCALDEVICE = 4,
RESOURCEUSAGE_SIBLING = 8,
RESOURCEUSAGE_ATTACHED = 16,
RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED),
}
public enum RESOURCE_DISPLAYTYPE
{
RESOURCEDISPLAYTYPE_GENERIC = 0,
RESOURCEDISPLAYTYPE_DOMAIN = 1,
RESOURCEDISPLAYTYPE_SERVER = 2,
RESOURCEDISPLAYTYPE_SHARE = 3,
RESOURCEDISPLAYTYPE_FILE = 4,
RESOURCEDISPLAYTYPE_GROUP = 5,
RESOURCEDISPLAYTYPE_NETWORK = 6,
RESOURCEDISPLAYTYPE_ROOT = 7,
RESOURCEDISPLAYTYPE_SHAREADMIN = 8,
RESOURCEDISPLAYTYPE_DIRECTORY = 9,
RESOURCEDISPLAYTYPE_TREE = 10,
RESOURCEDISPLAYTYPE_NDSCONTAINER = 11
}
[StructLayout(LayoutKind.Sequential)]
public struct NETRESOURCE
{
public RESOURCE_SCOPE dwScope;
public RESOURCE_TYPE dwType;
public RESOURCE_DISPLAYTYPE dwDisplayType;
public RESOURCE_USAGE dwUsage;
[MarshalAs(UnmanagedType.LPStr)]
public string lpLocalName;
[MarshalAs(UnmanagedType.LPStr)]
public string lpRemoteName;
[MarshalAs(UnmanagedType.LPStr)]
public string lpComment;
[MarshalAs(UnmanagedType.LPStr)]
public string lpProvider;
}
public class NetworkConnection
{
[DllImport("mpr.dll")]
public static extern int WNetAddConnection2A (NETRESOURCE[] lpNetResource, string lpPassword, string lpUserName, int dwFlags);
[DllImport("mpr.dll")]
public static extern int WNetCancelConnection2A (string sharename, int dwFlags, int fForce);
public static int Connect (string remotePath, string localPath, string username, string password)
{
NETRESOURCE[] share_driver = new NETRESOURCE[1];
share_driver[0].dwScope = RESOURCE_SCOPE.RESOURCE_GLOBALNET;
share_driver[0].dwType = RESOURCE_TYPE.RESOURCETYPE_DISK;
share_driver[0].dwDisplayType = RESOURCE_DISPLAYTYPE.RESOURCEDISPLAYTYPE_SHARE;
share_driver[0].dwUsage = RESOURCE_USAGE.RESOURCEUSAGE_CONNECTABLE;
share_driver[0].lpLocalName = localPath;
share_driver[0].lpRemoteName = remotePath;
Disconnect(localPath);
int ret = WNetAddConnection2A(share_driver, password, username, 1);
return ret;
}
public static int Disconnect (string localpath)
{
return WNetCancelConnection2A(localpath, 1, 1);
}
调用方式:
public static void TestNetWorkConnection()
{
string localpath = "X:";
//int status = NetworkConnection.Connect(@"\\192.168.0.2\test", localpath, @"test", "test");
int status = NetworkConnection.Connect("\\\\192.168.0.2\\test", localpath, @"test", "test");
if (status == (int)ERROR_ID.ERROR_SUCCESS)
{
FileStream fs = new FileStream(localpath + @"\\123.txt", FileMode.OpenOrCreate);
using (StreamWriter stream = new StreamWriter(fs))
{
stream.WriteLine("你好呀,成功了");
stream.Flush();
stream.Close();
}
fs.Close();
}
else
{
Console.WriteLine(status);
}
NetworkConnection.Disconnect(localpath);
}
什么IIS架构。晕~~~
1.首先正式版本的发布你必须要Release,不要直接把Debug程序放上去。
2.将所有的.cs文件删除。vs.net有一个很方便的工具,“项目——复制项目”就ok了。
3.windows server2003上一定要安装了"Internet 信息服务(IIS)管理器",如果没有安装的话可以到“控制面板——添加或删除程序——添加\删除WINDOWS组件——应用程序服务器”如果“应用程序服务器”没有构选的话钩上,放入windows 2003的系统盘安装。
4.安装完成之后把项目靠到服务器上。简单一点的方法是右键点击项目文件夹,Web共享——共享文件夹。此时就算发布成功了。不过还有一些细节需要注意。如:IIS匿名访问等。那就是另外的问题了。呵呵。IIS设置很简单,可以在网上找些资料。
1、点击右侧的网络连接,在弹出的对话框中点击打开网络和共享中心。
2、在网络和共享中心界面中点击更改适配器设置。
3、进入网络连接界面,右键本地连接。
4、在弹出的菜单中选择属性。
5、在本地连接属性界面中点击配置按钮。
6、切换到高级选项卡,在属性列表中找到并点击网络地址,在右侧输入修改后的网络地址,点击确定按钮。
7、使用命令提示符,输入Ipconfig-all,可以查看修改后的物理地址。