asg*_*guy 4 c# asp.net visual-studio-2010 visual-studio-2008 visual-studio
我正在尝试使用两个表连接到数据库.但是,在我尝试登录后,出现错误.该错误表示零点没有行.我认为这是因为我的联系,任何帮助将不胜感激.
提前致谢!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
namespace Project3
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void login_Click(object sender, EventArgs e)
{
OleDbConnection connect = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\parodeghero\\Documents\\Visual Studio 2010\\Projects\\Project3\\Project3\\App_Data\\QA.mdb;Persist Security Info=True");
//set up connection string
OleDbCommand command = new OleDbCommand("select * from Employee where Login=@login", connect);
OleDbParameter param0 = new OleDbParameter("@login", OleDbType.VarChar);
param0.Value = employeeID.Text;
command.Parameters.Add(param0);
//middle tier to run connect
OleDbDataAdapter da = new OleDbDataAdapter(command);
DataSet dset = new DataSet();
da.Fill(dset);
//problem line
if (dset.Tables[0].Rows[0]["Password"].ToString().Equals(password.Text))
{
Run Code Online (Sandbox Code Playgroud)
您需要打开连接
protected void login_Click(object sender, EventArgs e)
{
OleDbConnection connect = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\parodeghero\\Documents\\Visual Studio 2010\\Projects\\Project3\\Project3\\App_Data\\QA.mdb;Persist Security Info=True");
//set up connection string
OleDbCommand command = new OleDbCommand("select * from Employee where Login=@login", connect);
OleDbParameter param0 = new OleDbParameter("@login", OleDbType.VarChar);
param0.Value = employeeID.Text;
command.Parameters.Add(param0);
try
{
connect.Open();
}catch(Exception err){ Debug.WriteLine(err.Message);}
//middle tier to run connect
OleDbDataAdapter da = new OleDbDataAdapter(command);
DataSet dset = new DataSet();
da.Fill(dset);
Run Code Online (Sandbox Code Playgroud)
小智 6
您无需打开连接.OleDbDataAdapter.Fill将打开连接并关闭它,如果它发现它关闭开始.填充使连接处于找到它的状态.
我确实质疑你的SQL.我对OleDb的理解是它不支持SQL中的命名参数.它需要一个占位符"?" 而不是@login.每个占位符都需要一个参数,并且必须按照它们出现的顺序添加参数.如果您的SQL无效,那么您将在DataTable中有SQL异常或没有数据,即NO行0!
| 归档时间: |
|
| 查看次数: |
65670 次 |
| 最近记录: |