当前位置:首页 » 操作系统 » winform数据库操作

winform数据库操作

发布时间: 2022-07-15 06:40:29

1. 急!!!C#winform关于怎样在一个窗体中操作两个数据库

grid 只能绑一个数据源,因此你可以写个存储过程 ,内部连接二个数据库,进行关联,再一次返回出来(一个datatable)

2. C#的winform如何访问和操作sql2005数据库

方法有俩:
其一:利用三层架构,在数据访问层里面写与数据库连接字符串,然后用Sqlconnetion对象接收一下就行了;其二:直接在项目中添加一个DBHelper类用来建立与数据库的连接,在类中同样也写与数据库连接字符串,然后用Sqlconnetion对象接收就好了!但前提是要先引用命名空间:using System.Data.SqlClient 备注:方法一的分层开发有点是有利于项目的维护,提高团队协作!谢谢采纳!

3. c# WinForm 关于数据库的问题

你好,我分别对这几个问题一一回答.
1)服务器资源管理器很方便,比如它能直接拖动一些列到窗体,自动创建标签文本框以及绑定。生成的是强类型的dataset。它一般自动生成了很多代码。
记得看过一个国外的博客,关于entity Framework刚出来的时候,博主也是第一批尝试此技术的人给朋友演示.net如何提升效率,在短短十几分钟就将数据库连接通过你所列举的1,3方式就很轻松建立了数据库链接.这让他朋友目瞪口呆,这项技术的产生大大推动了.net开发效率,如果用其他语言和平台可能要花费一个星期时间进行手工数据库连接. 但是这个方式有弊端,它生成的强类型的dataset不仅不容易维护而且为了兼容产生很多不需要的代码也就是我们说的无用代码,所以在大型项目中不推荐这样的方式进行.
2)通过解决方案添加和第一种方式是一样的,双击这个数据库同样会出现在服务器资源管理中.
3)gridview连接数据库缩小了范围,有针对性,但是同样会产生那些无用代码,也是在项目中不推荐的.
4)最后一个方法是大部分人采用的,不仅逻辑清晰,而且便于维护,更加灵活,但是对程序员要求较高,因为很多功能都要自己实现.
上面就是不同点和联系了.
5)在一个项目中完全可以连接不同的数据库,因为数据库连接基本原则是尽量晚的连接,尽量早的断开,所以很少存在一个程序中一个线程一直占用一个数据库的情况.你可以在不同时间段连接不同数据库.
6)增删改查是基本操作,执行这些操作遵循我说的第五条,程序会自动建立连接进行操作的.

4. 你好,我做winform项目,对数据库操作后,只有bin文件夹下的数据库文件改变,连接的数据库文件并不改变

你是不是用的access数据库,而且用的是相对路径,那连接修改肯定就是bin下面debug或者release目录下的access数据库内容发生变化。
不知道是不是这个情况?

5. winform做界面,访问局域网内的服务器,服务器端对数据库进行操作

你说的是webservice吧,如果是webservice的话,这个是可以的,,但是你需要在自己的webservice里面实现对数据库的常规操作,然后winform可以添加对service的引用,和添加一个程序集的引用是差不多的,都是右键单击,出现一个添加webservice引用的菜单

6. winform 操作 access数据库

以下是按钮单击事件的代码:

private void btnok_Click(object sender, EventArgs e)
{
string sqlText = "select * from users where(uname='"+txtname.Text+"' and upass='"+txtpass.Text.Trim()+"')";
string connstr = "此处写连接字符串";//此处根据自己的access数据库放的位置更改
System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(sqlText,connstr);
System.Data.DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count == 0)
MessageBox.Show("验证失败!");
else
MessageBox.Show("验证成功!");//此处可放置登陆成功后的处理代码,比如实现窗体的转向等操作。
}

7. c# winform 中对SQL 数据库的修改

这个可以用entity
framework
可以建立一个实体数据库
通过entity来操作数据库
绝对不需要用Insert
不过貌似复杂程度比Insert高些
但是比较方便

8. Winform连接远程数据库

远程连接有点复杂,首先要保证客户端与SQL服务器连接

步骤:
一 看ping 服务器ip能否ping通。
这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查 看配

置,当然得确保远程sql server 2000服务器的IP拼写正确。

二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。
如telnet 202.114.100.100 1433
通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这

一步会出问题。通常的提示是“……无法打开连接,连接 失败"。
如果这一步有问题,应该检查以下选项。
1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。
2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协检查方法是,在服

务器上打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里

是否有tcp/ip协议,如果没有,则启用它。
3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的

tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框 没有勾上。
事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须

与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾 选,则意味着客户端无法通过枚

举服务器来看到这台服务器,起到了保护的作用, 但不影响连接,但是Tcp/ip协议的默认端口将被

隐式修改为2433,在客户端连接 时必须作相应的改变。
4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,

通常在测试时可以直接关掉windows防火墙(其他的防火墙也 关掉最好)。
5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检

查方法是在服务器的dos或命令行下面输入
netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening

的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分

析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。
如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一 闪之后光标在左上

角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析 器连接了。

三 检查客户端设置
程序->Microsoft SQL Server -> 客户端网络使用工具。像在服务器网络实用工具里一样,确保客 户端

tcp/ip协议启用,并且默认端口为1433(或其他端口,与服 务器端保持一致就行)。

四 在企业管理器里或查询那分析器连接测试
企业管理器->右键SQlserver组->新建sqlserver注册->下一步->写入远程IP-> 下一步->选Sqlserver登陆-

>下一步->写入登陆名与密码(sa,password)->下一 步->下一步->完成 查询分析器->文件->连接->写

入远程IP->写入登录名和密码(sa,password)->确 定
通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置

是4秒,而查询分析器是15秒。
修改默认连接超时的方法:
企业管理器->工具->选项->在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡->连接设

置->在登录超时(秒) 后面的框里输入一个较大的数字
查询分析器->工具->选项->连接->在登录超时(秒) 后面的框里输入一个较大的数 字
通常就可以连通了,如果提示错误,则进入下一步。

五 错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因 此用户无法使 用

SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:
1 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。
2 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。
3 在"身份验证"下,选择"SQL Server和 Windows "。
4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务, net start mssqlserver启

动服务,也是一种快捷的方法)。

附注:在连接本地服务器时,通常使用的是命名管道协议(在服务器网络实用工具里可以看到启用的

协议有这个),默认端口是445,因此在本地能连通是不能说明什么问题的,连接远程服务器是完全

不同的协议)

//如果是在远程连接sql2000,采用下面连接字符串

// string source = "database=Northwind;Server=192.168.1.181,1433;User ID=sa;Password=sa;Persist Security Info=True";

9. C# winform程序在局域网下的数据库操作需不需要webService等

你的程序将来有没有可能会放到广域网上运行,如果有这个可能的话,现在可以考虑加入wcf之类的技术做为数据中转接口。如果不考虑这个,仅仅只在局域网内运行,那程序可以直接访问访问数据库(当然,某些特定的功能可能还是需要用到webapi之类的东西,比如说大量的图片上传或浏览)

10. 通过c# winform程序如何对数据库进行备份和还原

WinForm c# 备份 还原 数据库, 其实是个非常简单的问题,一个Form,一个Button,一个OpenFileDialog,一个SaveFileDialog.下面给出备份与还原类

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Collections;
using System.Windows.Forms;
namespace 我的备份与还原

{
class 备份与还原数据库
{
static string connectionString = "server=.;database=master;uid=sa;pwd=";
SqlConnection conn = new SqlConnection(connectionString);
/// <summary>
/// 备份指定的数据库文件
/// </summary>
/// <param name="databasename">要还原的数据库</param>
/// <returns></returns>
public bool BackUpDataBase( string databasefile)
{
if (!File.Exists(databasefile))
{

}
//还原的数据库MyDataBase
string sql = "BACKUP DATABASE " + "MyDataBase" + " TO DISK = '" + databasefile + ".bak' ";
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
comm.CommandType = CommandType.Text;
try
{
comm.ExecuteNonQuery();
}
catch (Exception err)
{
string str = err.Message;
conn.Close();

return false;
}

conn.Close();//关闭数据库连接
return true;
}

//以下是还原数据库,稍微麻烦些,要关闭所有与当前数据库相连的连接

//------------------------------------------------------------------------------------------
public string RestoreDatabase(string backfile)
{
///杀死原来所有的数据库连接进程
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=.;Initial Catalog=master;User ID=sa;pwd =";
conn.Open();
string sql = "SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='" +
"MyDataBase"+ "'";
SqlCommand cmd1 = new SqlCommand(sql, conn);
SqlDataReader dr;
ArrayList list = new ArrayList();
try
{
dr = cmd1.ExecuteReader();
while (dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
}
catch (SqlException eee)
{
MessageBox.Show(eee.ToString());
}
finally
{
conn.Close();
}

for (int i = 0; i < list.Count; i++)
{
conn.Open();
cmd1 = new SqlCommand(string.Format("KILL {0}", list[i].ToString()), conn);
cmd1.ExecuteNonQuery();
conn.Close();
MessageBox.Show("系统已经清除的数据库线程: " + list[i].ToString() + "\r\n正在还原数据库!");
}
//这里一定要是master数据库,而不能是要还原的数据库,因为这样便变成了有其它进程
//占用了数据库。
string constr = @"Data Source=.;Initial Catalog=master;User ID=sa;pwd =";
string database = MyDataBase;
string path = backfile;
string BACKUP = String.Format("RESTORE DATABASE {0} FROM DISK = '{1}'", database, path);
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand(BACKUP, con);
con.Open();
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("还原成功,点击退出系统!");
Application.Exit();
}
catch (SqlException ee)
{
//throw(ee);

//MessageBox.Show("还原失败");

MessageBox.Show(ee.ToString());

}
finally
{
con.Close();
}
return "成功与否字符串";
}
}
}

热点内容
ibatissqlnotin 发布:2025-01-22 14:42:25 浏览:326
java电子书软件下载 发布:2025-01-22 14:41:41 浏览:729
tomcat远程访问 发布:2025-01-22 14:41:33 浏览:960
a算法解决八数码问题 发布:2025-01-22 14:32:39 浏览:273
python编译exe 发布:2025-01-22 14:31:11 浏览:451
现在密码箱多少钱 发布:2025-01-22 14:30:26 浏览:970
aspnet访问access 发布:2025-01-22 14:14:15 浏览:924
鸿蒙系统和安卓的哪个耗电 发布:2025-01-22 14:12:46 浏览:577
上海大众压缩机 发布:2025-01-22 14:02:31 浏览:48
读取excel的sql 发布:2025-01-22 13:59:58 浏览:865