2012-07-30 62 views
0

我需要得到SelectCommand.Parameters的值选择命令参数C#

你能帮帮我吗?

string sql = "SELECT area, login, senha FROM tbl_usuarios WHERE login = '" + login + "' AND senha = '" + senha + "'"; 
adapter = new SqlDataAdapter(sql, conn); 
dataTable = new DataTable(); 

adapter.SelectCommand.Parameters.Add("login", DbType.String); 
adapter.SelectCommand.Parameters.Add("senha", DbType.String); 

string a = adapter.SelectCommand.Parameters.Add(@"area", DbType.Int16); // Error Coversion 
Session.Add("ar", a); 

回答

2

我认为问题在于你试图从Add方法(这是一个SqlParameter)分配返回类型为字符串。

SqlParameterCollection.Add Method (String, SqlDbType)

我的事情你正在寻找的是类似

SqlParameter a = adapter.SelectCommand.Parameters.Add(@"area", DbType.Int16); 
0

检查你的代码在MSDN:SqlDataAdapter.SelectCommand Property

也许你需要的是:

获得的价值在你的数据表上:

string sql = "SELECT area, login, senha FROM tbl_usuarios WHERE login = '" + login + "' AND senha = '" + senha + "'"; 
adapter = new SqlDataAdapter(sql, conn); 
dataTable = new DataTable(); 
adapter.Fill(dataTable); 

string a = dataTable.Rows["area"].toString(); //get area value.. 
Session.Add("ar", a); 

问候

+0

按照我的解决方案 – Pedro 2012-07-30 12:12:42

0

你的问题不清楚,但是Add方法返回一个类型的SqlParameter的,所以这一点:

string a = adapter.SelectCommand.Parameters.Add(@"area", DbType.Int16); 

是错误的。它必须是:

SqlParameter a = adapter.SelectCommand.Parameters.Add(@"area", DbType.Int16); 
+0

按照我的解决方案 – Pedro 2012-07-30 12:13:17

0
 bool encontrou = false; 
     string sql = "SELECT area, login, senha FROM tbl_usuarios WHERE login = '" + login + "' AND senha = '" + senha + "'"; 
     command = new SqlCommand(sql, conn); 
     try 
     { 
      conn.Open(); 
      dataReader = command.ExecuteReader(); 
      while(dataReader.Read()) 
      { 
       string area = dataReader["area"].ToString(); 
       Session.Add("area", area); 
       encontrou = true; 
      } 
     }