C#窗体问题
我写了一个登录程序,可是有错,请高手帮忙,该怎么改正错误提示:不存在从对象类型System.Windows.Forms.TextBox到已知的托管提供程序本机类型的映射。...
我写了一个登录程序,可是有错,请高手帮忙,该怎么改正
错误提示:不存在从对象类型 System.Windows.Forms.TextBox 到已知的托管提供程序本机类型的映射。
部分代码:
private void button_User_Load_Load_Click(object sender, EventArgs e)
{
using (SqlConnection con3 = new SqlConnection("server = LGX-PC;Database = MyBooksMS;Integrated Security = true"))
{
con3.Open();
using (SqlCommand cmd3 = con3.CreateCommand())
{
cmd3.CommandText = "select * from User_Register where User_Load_ID=@User_Load_ID";
cmd3.Parameters.Add(new SqlParameter("User_Load_ID", textBox_User_Load_ID));
using(SqlDataReader User_Load_ID_reader=cmd3.ExecuteReader())
{
if (User_Load_ID_reader.Read())
{
int errorTimes = User_Load_ID_reader.GetInt32(User_Load_ID_reader.GetOrdinal("ErrorTimes"));
if (errorTimes > 3)
{
MessageBox.Show("登录次数过多,禁止登录!");
return;
}
string user_Load_Password = User_Load_ID_reader.GetString(User_Load_ID_reader.GetOrdinal("User_Load_Password"));
if (user_Load_Password == textBox_User_Load_Password.Text)
{
MessageBox.Show("登陆成功!");
ResetErrorTimes();
}
else
{
//在同一个连接中,如果sqlDataReader没有关闭,那么不能执行Update之类的语句,另写函数
IncErrorTimes();
MessageBox.Show("登录失败!");
}
}
else
{
MessageBox.Show("用户名不存在!");
}
}
}
}
} 展开
错误提示:不存在从对象类型 System.Windows.Forms.TextBox 到已知的托管提供程序本机类型的映射。
部分代码:
private void button_User_Load_Load_Click(object sender, EventArgs e)
{
using (SqlConnection con3 = new SqlConnection("server = LGX-PC;Database = MyBooksMS;Integrated Security = true"))
{
con3.Open();
using (SqlCommand cmd3 = con3.CreateCommand())
{
cmd3.CommandText = "select * from User_Register where User_Load_ID=@User_Load_ID";
cmd3.Parameters.Add(new SqlParameter("User_Load_ID", textBox_User_Load_ID));
using(SqlDataReader User_Load_ID_reader=cmd3.ExecuteReader())
{
if (User_Load_ID_reader.Read())
{
int errorTimes = User_Load_ID_reader.GetInt32(User_Load_ID_reader.GetOrdinal("ErrorTimes"));
if (errorTimes > 3)
{
MessageBox.Show("登录次数过多,禁止登录!");
return;
}
string user_Load_Password = User_Load_ID_reader.GetString(User_Load_ID_reader.GetOrdinal("User_Load_Password"));
if (user_Load_Password == textBox_User_Load_Password.Text)
{
MessageBox.Show("登陆成功!");
ResetErrorTimes();
}
else
{
//在同一个连接中,如果sqlDataReader没有关闭,那么不能执行Update之类的语句,另写函数
IncErrorTimes();
MessageBox.Show("登录失败!");
}
}
else
{
MessageBox.Show("用户名不存在!");
}
}
}
}
} 展开
5个回答
展开全部
cmd3.Parameters.Add(new SqlParameter("User_Load_ID", textBox_User_Load_ID));
参数名写错了 ,改 为 “@User_Load_ID"
参数值也错了 ,应该为 textBox_User_Load_ID.Text
参数名写错了 ,改 为 “@User_Load_ID"
参数值也错了 ,应该为 textBox_User_Load_ID.Text
追问
我该了以后,原来的那个错误没有了,不过又有新的错误了,请问该怎么改?
错误信息:
数据为空。不能对 Null 值调用此方法或属性。
错误语句:
int errorTimes = User_Load_ID_reader.GetInt32(User_Load_ID_reader.GetOrdinal("ErrorTimes"));
展开全部
楼主的代码没错,可能是控件的注册出问题了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的这种语法形式没用过,可以下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询