if(this.textBox1.Text==oleDbDataAdapter1.SelectCommand.Parameters["@customer_id"].Value&&this.textBox2.Text==oleDbDataAdapter1.SelectCommand.Parameters["@password"].Value)
解决方案 »
- 各位大虾们,最后一步了,实现不了。
- C#实现禁用键盘特殊功能键功能
- C#与.NET3.5高级程序设计(第4版)
- .net webservice调用dll
- 在iis6里运行的挺正常的remoting程序,为什么在iis7里不工作?
- C#中修改了EXCEL文档,如何保存?
- C#开发时候系统中添加的引用或者assembly与现在环境中的不匹配求解
- printdocument是否支持网络打印机?
- C#如何打印预览word
- c#无闪烁画图问题,求解决
- 急!100分求解高难问题:MDI开发,在线程中引用了WebService得到DataSet后赋值给DataGrid,出错!
- 使用WebService,如何对客户端进行使用权限验证?
未处理的“System.IndexOutOfRangeException”类型的异常出现在 system.data.dll 中。其他信息: 此 OleDbParameterCollection 中未包含带有 ParameterName“@customer_id”的 OleDbParameter。牛兄该怎么办啊?
那应该怎么改啊
OleDbParameter myParameter = new OleDbParameter("Description", OleDbType.VarChar, 88);
myParameter.Value = "garden hose";
所以楼主可以对一下你的参数名是不是写正确了.再有你最好不要直接这么写:
this.textBox1.Text==oleDbDataAdapter1.SelectCommand.Parameters["customer_id"].Value一是看来起费劲,二是出了错不好调试,所以你最好先取出oleDbDataAdapter1.SelectCommand.Parameters["customer_id"].Value
的值来和textBox1比较.比如如下:object tmpobj = oleDbDataAdapter1.SelectCommand.Parameters["customer_id"].Value;
if (tmpobj != null && tmpobj != DbNull.Value)
{
if (this.textBox1.Text == tmpObj.ToString().........
}
好像就是因为你指定名称的参数没有在你的参数之内,所以你最好对一下你的参数名是否正确.
未处理的“System.IndexOutOfRangeException”类型的异常出现在 system.data.dll 中。其他信息: 此 OleDbParameterCollection 中未包含带有 ParameterName“@customer_id”的 OleDbParameter。因为你数据库中根本就没有customer_id这一项吧,确认一下你的单词有没有写错?!
oleDbDataAdapter1.SelectCommand.Parameters[0]之类的试试,或者快速监视一下oleDbDataAdapter1.SelectCommand.Parameters的内容看看里面的内容是怎么回事.
照你的方法试了下,显示出来的都是空信息,就是什么都没有
未处理的“System.IndexOutOfRangeException”类型的异常出现在 system.data.dll 中。其他信息: 此 OleDbParameterCollection 的 Count=0 的索引 0 无效。
this.textBox1.Text==oleDbDataAdapter1.SelectCommand.Parameters["@customer_id"].Value
[email protected]
谢谢。。~!
LiJoe(有看贴的权利,没有回帖的义务) (
数据库连接代码。
逻辑层:
public bool TestLogin(string username,string userpassword)
{
DataTable dt=new DataTable();
string query="Username='"+ username +"' and Userpassword='"+ userpassword +"'";
try
{
dt=da.GetDataTable("SG_User",query);
if(dt.Rows.Count>0){return true;}
else{return false;}
}
catch
{
return false;
}
}
public DataTable GetDataUser()
{
DataTable dt=new DataTable();
dt=da.GetDataTable("SG_User");
return dt;
}
窗体代码:
private void Loginform_Load(object sender, System.EventArgs e)
{
this.GetBindData();
}
private void Loginbut_ClickEvent(object sender, System.EventArgs e)
{
//判断
if (login.TestLogin (this.Usernamecmb.Text.Trim(),this.Userpasswordtxt.Text.Trim())== true)
{
this.Close();
}
else
{
MessageBox.Show("密码错误,请重新输入!");
}
}
private void GetBindData()//获取并绑定窗体数据
{ //填充窗体数据
DataSet ds=new DataSet();
ds.Tables.Add(login.GetDataUser());
ds.Tables[0].TableName="user";
this.Usernamecmb.DataSource=ds.Tables["user"];
this.Usernamecmb.DisplayMember="Username";
}
你是用SQL2000建的数据库吗?
看看吧。//验证登录的“工号”和“密码”-----------------------------------------------------------------------------------------------------------------
public static bool validateLogon(string strWorkNo,string strPassword)
{
//建立SqlConnection对象
SqlConnection cn = new SqlConnection();
cn.ConnectionString = AppConfig.ConnString;
cn.Open();
//建立SqlCommand及SqlDataReader对象
string strSql;
bool bolLogon;
strSql = "select user_name from user_no where work_no = '" + strWorkNo + "' and password = '" + strPassword + "' and password <> '' and is_del = 0";
SqlCommand cmd = new SqlCommand(strSql, cn);
SqlDataReader dr = cmd.ExecuteReader();
cmd.Dispose(); if(dr.Read())
{
strCurrUserNo = strWorkNo;
strCurrUserName = dr["user_name"].ToString();
bolLogon = true;
}
else
{
bolLogon = false;
}
dr.Close();
cn.Close();
cn.Dispose(); return bolLogon;
}