用户登录验证问题----请高手帮忙

vgy12304 2006-03-02 08:16:33
login.cs文件

public class loginfrm : System.Windows.Forms.Form
{
public static bool blCanLogin = false; //记录能否检验是否通过
public static string strUser = ""; //记录用户名
public static string strDepartment = "";//记录通过者权限

private DataSet ds = new DataSet();
private DataTable myTable;
private DataRow myRow;
private string sendStrSQL = "SELECT * from sunsoft";
private System.Windows.Forms.TextBox txt_ID;
private System.Windows.Forms.TextBox txt_Pwd;
private System.Windows.Forms.Button btnok;
private System.Windows.Forms.Label lbname;
private System.Windows.Forms.Label lbpw;
private System.Windows.Forms.Button btnquit;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;

static void Main()
{


Application.Run(new loginfrm());
}
public loginfrm()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
LinkDataBase link = new LinkDataBase();
string sendTableName = "sunsoft1";
this.ds = link.SelectDataBase(sendStrSQL,sendTableName);
this.myTable = ds.Tables[0];
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}


/// <summary>
/// 应用程序的主入口点。
/// </summary>




private void btnok_Click(object sender, System.EventArgs e)
{
for (int i=0;i<myTable.Rows.Count;i++)
{
this.myRow = myTable.Rows[i];
//只有当输入的用户名和密码同时对应上数据库中记录时,才能通过校验
if (myRow[0].ToString().Trim()==this.txt_ID.Text.ToString().Trim() && myRow[1].ToString().Trim()==this.txt_Pwd.Text.ToString().Trim())
{
blCanLogin = true;
strUser = myRow[0].ToString().Trim();//保存用户名
strDepartment = myRow[1].ToString().Trim();//保存权限
this.Close();//关闭窗体
return;
}
}
MessageBox.Show( "您输入的用户号或密码不正确!","系统提示");
return;






}



LinkDataBase.cs文件中


public class LinkDataBase
{

private string strSQL;
//与SQL Server的连接字符串设置
private string ConnectionString= "Provider=sqloledb;Data Source=web;Initial Catalog=liming;User Id=sa;Password=12345;";

private OleDbConnection myConnection;

private OleDbCommandBuilder OleDbCmdBld;
private DataSet ds = new DataSet();
private OleDbDataAdapter da;

public LinkDataBase()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

///////////////////////////////// 操作脱机数据库(创建了该类的实例时直接用) /////////////////////////////////////////////////////

//根据输入的SQL语句检索数据库数据
public DataSet SelectDataBase(string tempStrSQL,string tempTableName)
{
this.strSQL = tempStrSQL;
this.myConnection = new OleDbConnection(ConnectionString);
this.da = new OleDbDataAdapter(this.strSQL,this.myConnection);
this.ds.Clear();
this.da.Fill(ds,tempTableName);
return ds;//返回填充了数据的DataSet,其中数据表以tempTableName给出的字符串命名
}

//数据库数据更新(传DataSet和DataTable的对象)
public DataSet UpdateDataBase(DataSet changedDataSet,string tableName)
{
this.myConnection = new OleDbConnection(ConnectionString);
this.da = new OleDbDataAdapter(this.strSQL,this.myConnection);
this.OleDbCmdBld = new OleDbCommandBuilder(da);
this.da.Update(changedDataSet,tableName);
return changedDataSet;//返回更新了的数据库表
}

///////////////////////////////// 直接操作数据库(未创建该类的实例时直接用) /////////////////////////////////////////////////////

//检索数据库数据(传字符串,直接操作数据库)
public DataTable SelectDataBase(string tempStrSQL)
{
this.myConnection = new OleDbConnection(ConnectionString);
DataSet tempDataSet = new DataSet();
this.da = new OleDbDataAdapter(tempStrSQL,this.myConnection);
this.da.Fill(tempDataSet);
return tempDataSet.Tables[0];
}

//数据库数据更新(传字符串,直接操作数据库)
public int UpdateDataBase(string tempStrSQL)
{
this.myConnection = new OleDbConnection(ConnectionString);
//使用Command之前一定要先打开连接,后关闭连接,而DataAdapter则会自动打开关闭连接
myConnection.Open();
OleDbCommand tempSqlCommand = new OleDbCommand(tempStrSQL,this.myConnection);
int intNumber = tempSqlCommand.ExecuteNonQuery();//返回数据库中影响的行数
myConnection.Close();
return intNumber;
}
}
}


在本机环境中运行正确,可是到了别人机器上运行出错oledb错误,
请高手指点一下
...全文
226 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
aSalt 2006-03-06
  • 打赏
  • 举报
回复
1尝试用IP地址访问,局域网内的SQL Server

2告诉你个简单的办法,窗体上拖放一个SqlConnection1控件,然后在连接向导里选责服务器和数据库,测试连接通过后在SqlConnection1的属性里找到并复制ConnectionString,删除(可选)SqlConnection1控件(此时可以直接使用SqlConnection1.Open()),将值赋给你的con.ConnectionString,然后再试。
vgy12304 2006-03-06
  • 打赏
  • 举报
回复
或者是我的文件类型NTFS,权限有关呢?
vgy12304 2006-03-04
  • 打赏
  • 举报
回复
可是我连不了,是不是在SQL server端需要特殊设置啊?
vgy12304 2006-03-03
  • 打赏
  • 举报
回复
this.ds.Clear();
this.da.Fill(ds,tempTableName);

这里,填充数据集这里出错
yz1199 2006-03-03
  • 打赏
  • 举报
回复
你设置个断点,捕捉异常,看时候哪一步出错
vgy12304 2006-03-03
  • 打赏
  • 举报
回复
但是,我是在同一工作组下面运行的

我尝试在不同的机器上运行如下子令,可以正常运行的啊
private void loginfrm_Load(object sender, System.EventArgs e)
{
System.Data.OleDb.OleDbConnection con=new OleDbConnection();
con.ConnectionString = "Provider=SQLOLEDB;Data Source=web;Initial Catalog=liming;User Id=sa;Password=12345;";



try
{
con.Open();
MessageBox.Show("数据库连接成功","提示");
}
catch
{
MessageBox.Show("数据库连接失败","提示");
}
con.Close();
con.Dispose();

}
yz1199 2006-03-03
  • 打赏
  • 举报
回复
private string ConnectionString= "Provider=sqloledb;Data Source=web;Initial Catalog=liming;User Id=sa;Password=12345;";
错误.如楼上所说,数据库不同,用户名和密码也不一定就相同.你并没有成功连接数据库,又怎么进行判断呢?
xiaowen01 2006-03-03
  • 打赏
  • 举报
回复
知道了数据库服务器名称和用户名密码,只要联网了,在哪台电脑上有什么关系吗?本来就可以访问的啊。
"user id=sa;password=12345;initial catalog=liming;data source=web;"这是连接字符串,你试试
vgy12304 2006-03-03
  • 打赏
  • 举报
回复
知道原因了,数据库连接问题

在局域网中有sql数据库服务器web,现在我要在任意一台机上连接数据库,
连接字符串怎么写???

请高手帮忙解决问题,分不够可以再加!
hedongfu 2006-03-02
  • 打赏
  • 举报
回复
与SQL Server的连接字符串的问题,人家机器数据库的密码不一定是12345,或者验证方式也不一样
hinkpad Marker Slic2.1自助手册 前言:以下教程参考了众多高手的帖子。对于这样的主题之所以再次发布,只是因为很多类似主题的帖子,总是有些语焉不详,让众多会员不甚了了,无法动手。我也是费了一些周折才真正搞明白,并实施成功。附件包含了必备的slic2.1和工具!希望这个对大家有帮忙。教程中所提到的方法和工具,仅供参考,本人不承担任何可能的风险和法律责任。谢谢! 1、如何Marker? 注意:刷过破解版bios的朋友,务必先刷成官方bios!已经是官方bios的略过此步。在这里还是假设你不是太菜鸟,知道怎么刷bios。 1)首先确定自己Thinkpad机型对应的slic2.1型号(后缀为.bin的文件格式)。打开Lenovo网站搜寻对应型号的bios下载页,比如看到T400 2676的bios的信息如下: 支持操作系统: Windows 7 版本: 3.09-1.03/3.10-1.03 发布时间: 2009-10-17 文件名称为:7uuj35us.exe X200的Bios文件名称以6d打头,所以T400 2676对应的Slic2.1为文件名里含有6d的文件,比如TP-6d.bin。 2)使用SLIC_Dump_ToolKit查看自己的BIOS是否有原生的slic并选择正确的slic文件:有原生Slic2.0的用户,注意选择182 bytes的Slic2.1表(本人x200 7457a78用的就是182 bytes的slic2.1表)。无Slic的用户,注意选择374 bytes的Slic2.1表。 如果不确定有没有原生slic,无所谓,182 bytes的和374 bytes都试试吧,成功了的就是对的(如果选错了型号是不能marker的,没有风险)。 3)使用UltraISO(自行下载)将dos.img镜像写入U盘,即制作好了启动盘。此时U盘中有三个文件: DRVSPACE.BIN IO.SYS MSDOS.SYS 4)把Marker.exe复制到已经制作好的USB启动盘中。 5)把前面确认的对应自己Thinkpad型号的slic2.1文件,比如本人的x200 7457a78的slic2.1文件为tp-6d.bin,将这个文件复制到已经制作好的可启动U盘中。这时你的U盘里面应该有下面这五个文件,一切准备就绪: DRVSPACE.BIN IO.SYS MSDOS.SYS Marker.exe tp-6d.bin 6)重启电脑按F12选择用U盘启动进入DOS,执行如下命令(注意空格和将命令行中的文件改成和你的slic2.1文件名称一样,在这里是本人的Slic2.1文件为tp-6d.bin): marker.exe /w:tp-6d.bin /z 执行速度快如闪电! 如果成功则显示“Programming Done!!!”“**** Success: Process completed (00) ****”等信息,恭喜你! 如果失败则会提示slic型号不对等信息,这时需要重复步骤2)-5)确认更新正确的slic2.1文件,再继续努力。 2、成功marker slic2.1后重启进入Windows 7,可以使用SLIC_Dump_ToolKit查看Slic2.1信息。 如果你安装的就是对应的Lenovo OEM版,则重启后自动激活。 如果没有自动激活(比如你安装的是MSDN版),则导入证书和系列号即可激活。操作如下(现在网上有高手制作了证书和系列号自动导入程序,下载来用就可以了,不用像下面这么麻烦,所以建议你别看了): 1)点击桌面左下角Windows图标启动开始菜单,在“搜索程序和文件”的空行里面敲入cmd,在出现的程序栏上上面的cmd.exe点击鼠标右键选择“管理员身份运行”启动命令行模式。 2)在出现的命令行内输入slmgr.vbs -ilc 证书路径\证书文件名,例如slmgr.vbs -ilc D:\lenovo.xrm-ms,稍等片刻系统就会有提示导入成功。这里假设Lenovo证书的存放路径和名称如上。 3)输入slmgr.vbs -ipk 22TKD-F8XX6-YG69F-9M66D-PMJBM 来导入系列号(这里是Lenovo泄漏的旗舰版OEM系列号),成功后输入slmgr.vbs -ato。 4)检查是否己正确激活。 3、尽情享受正版的快乐吧。 4、注意事项 Marker现在已知可以使用在X200s/t,T400/500,R400上,其他机型未知。不可用在其他品牌机型上! ***如果你只是想刷bios享受正版Windows 7,那你看到这里就可以了。如果你想了解关于Slic和marker的知识,继续看下面的简单介绍。要想深入了解,那多上bios之家吧!*** 5、什么是SLIC。 SLIC是Software Licensing Internal Code的英文缩写,即软件许可内部码,是微软的操作系统激活技术。 6、什么是Marker? 简单来说Marker是在DOS下运行的16位BIOS Flash软件。和一般的BIOS更新程序不同,marker仅能写入BIOS的特殊区域(既SLIC表)。 7、为何建议选择Marker而不选择修改版的BIOS? 1)修改版的BIOS缺点: 修改版的BIOS由原厂BIOS经爱好者修改而来,未经有效的验证,有较高的刷机风险。修改版的BIOS仅仅是通过修改SLIC 的方式将slic2.1加入BIOS某个非正确的空白模块。在下次刷入原厂BIOS后,修改的Slic2.1会消失,造成激活失效。 2)Marker的优势: 由一个简单的DOS flash程序执行,速度极快,选错slic版本,将不会刷新,几乎没有刷机失败风险。Slic2.1将会永久的固化在正常的BIOS模块内,升级BIOS不会丢失Slic2.1。 3)Marker的限制: Marker必须使用经过签名的、验证的、原厂的slic文件才能刷入。这就意味着必须有原厂的有效slic文件才行。对X200/T400等这一代的Thinkpad来说,这个不是问题,因为已经有预装Windows 7的机型,从这些机型导出slic2.1即可共享。
更多项目进度详情分享:智能小车开源项目文章汇总 我们为什么要做这件事? 困境:“跪求指点”的菜鸟一年比一年多,有空搭理菜鸟的大神一年比一年少。 原因:很多时候不是大神不肯帮忙,而是各种零散、离奇、重复的问题,浇灭了他们“扶弱济贫”的心。 对策:电路城团队深谙两方的急迫和苦衷,作为一个技术交流平台应有的责任,于是有了《来实战》的栏目构想,即每期选定一个富有启发性和趣味性的开源项目,由硬件设计大神带队,引领一批自愿报名加入的同道爱好者,从项目分析、思路梳理开始,逐步完成动手实践、项目调试,直到最后的完美再现和更进一步的功能升级。我们期望,今天的新手菜鸟,能用自己的勤勉好学,得到大神更多的关注和指导,更快加入硬件高手的行列;我们也期望,受益于这个项目的人们,也将更愿意帮助那些陷入迷茫的曾经的自己。 支持:电路城的美国兄弟工程师交流平台hackaday(www.hackaday.com)和摩尔吧视频平台(https://www.moore8.com/)... 关于开源项目,我们计划这样来操作: 1.对标摩尔吧中的中相关主题智能小车项目(基于恩智浦平台智能汽车),我们这次用基于意法半导体的STM32平台来打造多功能智能小车,最终实物性能如何?基于意法半导体平台的智能小车PK恩智浦智能小车,谁更胜一筹?电路城开源项目组现在开始就通过逐步实操并最终打造出来,最后实物演示操作对比。此外,我们将预留资源,增加创意点的功能:红外或者超声波避障、摄像头、激光测距、舵机等等(到时根据实际进度会有一定取舍调整)。 2.项目更新进度:每两天在《来实战》栏目上更新设计进度内容,在工程没有实质性进度的时候也可以在论坛发帖分享进行实施困难点、设计技术难点和原理讲解及器件分析等。 3.建立对应项目讨论群。利用现有已建立的技术Q群资源,我们在做每一个不同主题方向的项目时,为方便讨论同时活跃Q群用户,欢迎更多志同道合的小伙伴加进来参加开源项目讨论或给我们提供建议。 4.采购设计工具 工具:电焊台(刀头、尖头)、焊锡丝、吸锡器、助焊膏、烙铁架子带夹子、松香、热熔胶枪、螺丝刀、万用表、剪钳、镊子、钳子、海绵、美工刀、元器件收纳盒、手持钻孔机等等,以后可以慢慢完善。示波器以及信号源、多功能电源。 元器件及材料:采购电子元器件以及打板。 5.我们会定期举办开源项目直播交流,或制作一些项目设计过程中的小视频,在项目交流群中与大家分享,感兴趣的小伙伴马上加入我们吧。 6.建立开源项目贡献者名单荣誉榜,不定期在本开源项目页面更新。项目结束后,对该开源项目贡献突出的小伙伴,我们评选出“开源之星”给予神秘大奖奖励。开源项目贡献者名单会被注明在最终的开源项目方案中。 7.期待更多的志同道合的技术大咖加入我们“开源项目智囊团”,出谋划策,为开源贡献自己应有的力量。 8.这是一个开源项目,项目最终会被分享上传到“电路城-电路方案”频道,供大家免费下载。 智能小车开源项目开发周期 计划2020.3.5~2020.4.30内完成。 项目主要有以下几个阶段(每个阶段我们还会就开发过程中遇到的一些有价值的开发难点或经验教训,以直播的形式在摩尔吧开播,具体主题和时间后期持续更新,感兴趣的小伙伴可以关注下哈~): 第一阶段:设计的要求及技术指标 -硬件系统(确定硬件设计思路,出总体框图,完成主要器件选型及相关资料查找); -软件系统(确定程序流程框图,查看相关示例程序,一般传感器、相关模块会给示例程序); -设计方案介绍(整体设计方案的介绍,以及相关方案的对比); -工作原理介绍及说明(介绍功能参数、方案原理、相关科普); 第二阶段:硬件系统设计 -硬件系统各模块功能介绍(所用到的功能模块、传感器、少见器件学习以及出文章介绍); -原理图、PCB图或仿真图绘制(完成原理图设计,需制作实物还需进行PCB设计); -元器件选型与BOM表(跟据原理图设计同步确定元器件选型,给出具体BOM表); 第三阶段:软件系统设计 -使用单片机资源情况(单片使用资源介绍,完成一些基础的讲解,还有相关芯片器件); -软件系统各模块功能介绍(各功能模块程序设计流程图,程序实现原理); -程序编写及清单(进行总的程序编写,以及初步调试); 第四阶段:实物制作 -焊接(待元器件集齐,打板完成,进行焊接以及相关结构制作,模型安装等); -软件调试; -硬件调试(结合软硬件调试,完成程序修改,确保功能实现,验证硬件部分没有问题); -设计结果分析(测试功能、验证相关参数,有什么不足以及改正,对做的不好的地方留时间补救); -测试过程(完整测试的发表,实测); 第五阶段:项目总结 -完成知识总结等收尾工作; -整理打包完整的开源方案所有资料; -开源项目突出贡献者名单公布及颁发奖品。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧