C# WINFORM 外网访问 公司内部服务器 SQL SERVER 2008 程序.

C# WINFORM 外网访问 公司内部服务器 SQL SERVER 2008 程序.,第1张

打包数据库到安装程序中
方法1 备份/恢复
先备份数据库:
backup database 数据库 to disk='c:\备份bak'
将备份文件打包到安装程序中
在第一次运行程序的时候,进行数据库恢复(或专门做一个系统配置的程序,来控制完成此工作)
restore database 数据库 from disk='c:\备份bak'
方法2 分离/附加
先分离数据库:
sp_detach_db '数据库名'
将数据文件(mdf)和日志文件(ldf)打包到安装程序中
在第一次运行程序的时候,进行数据库附加(或专门做一个系统配置的程序,来控制完成此工作)
sp_attach_db '数据库名','数据文件名(mdf)','日志文件名(ldf)'
方法3 用数据库脚本
生成数据库脚本:
sql200企业管理器
--右键要导出的数据库
--所有任务
--生成SQL脚本
--<常规>里选择"生成全部对象脚本"","在脚本文件中包含说明性标题"选上
--<设置格式>里,将"包含扩展属性",选上
--<选项>中,将"表脚本选项"中的内容全部选择上
--<选项>中,"安全性选项"是决定是否要包含创建数据库及用户权限等的设置,根据你的需要选择
--其他所有的选项保持默认值
--然后确定,将其保存成一个sql文件
生成数据脚本(借用第三方工具):
SQL Server 数据库SQL脚本导出器10
(1) 支持所有数据类型(如binary,text,image)
(2) 支持表结构、索引、所有记录到SQL脚本
(3) 支持数据库、表的浏览
(4) SQL语句的编辑、执行
(5) 可备份数据库、表结构、记录
将脚本文件打包到安装程序中
在第一次运行程序的时候,执行脚本(或专门做一个系统配置的程序,来控制完成此工作),通过调用isqlexe文件完成
exec masterxp_cmdshell 'isql /E /i"sql文件"'
也可以直接在程序中调用isqlexe文件或直接将isqlexe文件集成到程序安装包中
很明确的。
=================================================================
补充
=================================================================
你的sql文件里要先创建数据库,然后再创建表,创建表的时候要往该数据库里创建表。
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。

这个很简单,普通的数据库 *** 作就可以,只不过连接的时候设置连接的IP
数据库安装在服务器上,假定IP为1110102
客户端和服务器端程序全部使用 server=1110102;uid=sa;pwd=;database=数据库名;这样的连接字符串进行连接数据库 *** 作。
这样不管是客户端还是服务器端, *** 作的都是同一个数据库,只不过是 *** 作界面不同而已(就是权限)。

先添加-新建项目-windows应用程序,然后在右边的解决方案资源管理器上面,在当前的解决方案上面右击,点,添加-新建项目-类库,分别建立。DAL,BLL,Model三个项目,然后,在DAL项目上右击-添加引用-项目,选择Model,然后在BLL项目上右击-添加引用-项目,选择Model与DAL,然后用同样的 *** 作,把Model,DAL,BLL引用到应用程序中,就建立好了

本人分别写了客户端和服务器下的代码,程序的目的是客户端和服务器可以互相发送信息。但程序编译能通过,但总是不能传送信息,希望各位高手能给出指点,谢谢!!
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
服务器端:
服务器是由两个textBox(textBox1用来指示IP地址127001,textBox2用来指示服务器端的端口(3456)),一个listBox(listBox用来显示服务器和客户端的连接状况),两个richTextBox(richTextBox1用来显示客户端发送给服务器的信息,richTextBox2用来显示服务器发送给客户端的信息),三个button(button1用来建立连接并接收来自客户端的信息,button2用来关闭连接并停止发送,button3用来发送信息给客户端),代码如下:
private UdpClient server;
private void button1_Click(object sender, SystemEventArgs e)
{ start();}
////////////
private void button2_Click(object sender, SystemEventArgs e)
{ serverClose();
thislistBox1ItemsAdd("The Connection canceled!");
}
////////////
private void start()
{ server=new UdpClient(3456);
IPEndPoint myhost=null;
try
{ thislistBox1ItemsAdd("Waitng for a Client……");
byte[] bytes=serverReceive(ref myhost);
thisrichTextBox1Text=SystemTextEncodingUnicodeGetString(bytes,0,bytesLength);
thislistBox1ItemsAdd("Connection Success!");
}
catch(Exception err)
{ thislistBox1ItemsAdd(errToString()); }
}
//////////
private void button3_Click(object sender, SystemEventArgs e)
{ try
{ thislistBox1ItemsAdd("开始发送信息!");
byte[] bytes=EncodingUnicodeGetBytes(thisrichTextBox2Text);
serverSend(bytes,bytesLength,thistextBox1Text,4500);
}
catch(Exception err)
{ MessageBoxShow(errToString()); }
}
////////////////////////////////////////////////////////////////////////////////////////////
客户端:
客户端是由由两个textBox(textBox1用来指示IP地址127001,textBox2用来指示客户端的端口(4500)),一个listBox(listBox用来显示客户端的状态),两个richTextBox(richTextBox1用来显示服务器发送给客户端的信息,richTextBox2用来显示客户端发送给服务器的信息),两个button(button1用来建立与服务器连接并发送和接收信息,button2用来关闭连接并停止发送),当然在运行时得先运行客户端。代码如下:
private UdpClient client;
//////////////
private void button1_Click(object sender, SystemEventArgs e)
{ client=new UdpClient(4500);
try
{ thislistBox1ItemsAdd("正在向服务器发送数据……");
byte[] bytes=SystemTextEncodingUnicodeGetBytes(thisrichTextBox2Text);
IPEndPoint host=null;
byte[] response=clientReceive(ref host);
thisrichTextBox1Text=SystemTextEncodingUnicodeGetString(response);
}
catch(Exception err)
{ thislistBox1ItemsAdd(errToString());}
}
////////////////
private void button2_Click(object sender, SystemEventArgs e)
{ clientClose();
thislistBox1ItemsAdd("The Connection canceled!");
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13505356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-20
下一篇 2023-08-20

发表评论

登录后才能评论

评论列表(0条)

保存