问题:你的oleDbDataAdapter1的sql语句中有参数吗?
解决方案 »
- c#怎样读取.doc .xls文件
- 多线程同时下载5个文件时,下载的那段代码需要加锁吗?
- 一个很简单的线程问题
- datagridview ???
- 一起来说说学C#的经历和有趣的故事吧~~~
- 总是错!-DataGrid完成数据编辑、更新。问题解决再加分!!!-代码我写的很详细
- 数据库的删除~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Web应用程序里打开文件的对话框应该怎么做?过滤文件类型呢?
- .net的定时器,为何在操作UI控件的时候,却不用this.Invoke()呢?
- 我想学C#,但对C#不是很了解,请问学习C#需要哪些方面的知识
- .net在nt4.0上能运行吗?
- 这条SQL语句怎么用?
我创建了一个组件ComLogin
在里面做了一个方法如下:
public bool Login(string i,string p)
{
System.Data.OleDb.OleDbCommand myCmd=new System.Data.OleDb.OleDbCommand();
System.Data.OleDb.OleDbDataAdapter myAdpt=new System.Data.OleDb.OleDbDataAdapter();
System.Data.OleDb.OleDbConnection myConn=new System.Data.OleDb.OleDbConnection();
System.Data.OleDb.OleDbDataReader myRdr;
myCmd.CommandText="SELECT id FROM tab_manager WHERE (password = ?)";
myConn.ConnectionString=@"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Library;Data Source=ITOP01581;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=ITOP01581;Use Encryption for Data=False;Tag with column collation when possible=False";
myCmd.Connection=myConn;
myAdpt.SelectCommand=myCmd;
myAdpt.SelectCommand.Parameters["id"].Value=i;
myRdr=myCmd.ExecuteReader();
if (p==myRdr.GetString(0))
return true;
else
return false;
}
在我的登陆页面里用它
protected ComLogin login1 = new ComLogin(); if (login1.Login(txtId.Text,txtPassword.Text))
Label1.Text ="failed";现在提示:
此 OleDbParameterCollection 中未包含带有 ParameterName“id”的 OleDbParameter。
行 30: myCmd.Connection=myConn;
行 31: myAdpt.SelectCommand=myCmd;
行 32: myAdpt.SelectCommand.Parameters["id"].Value=i;//为红色
行 33: myRdr=myCmd.ExecuteReader();
行 34: if (p==myRdr.GetString(0))
请指导
myCmd.Parameters.Add("@id", SqlDbType.VarChar, 80).Value = i应该这样写或者
myCmd.CommandText="SELECT id FROM tab_manager WHERE (password = @id)";
myAdpt.SelectCommand.Parameters.Add("@id", SqlDbType.VarChar, 80).Value = i
密码比较一步出问题了:
if (p==myRdr.GetString(0))
return true;
else
return false;总是返回False
我用Label显示 myRdr.GetString(0)的值时和p的值是一样的,是不是语句有问题
对于这样的代码,质量是不高的。比如说,Command.Parameters["id"]如果是null,调用她的value,那么就会提示null object refrenced的错误。还有字符串比较中,如果你的密码不区分大小写,那么使用str.ToUpper().Trim()进行判断,比如说你对文件名的一些操作,就应该这样。