为什么我的代码无法将值分配到文本框中.... [英] why my code does not working to assign value into a textbox....

查看:64
本文介绍了为什么我的代码无法将值分配到文本框中....的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这些代码有什么问题请帮助



  string  conStr = ConfigurationManager.ConnectionStrings [  CStringCRM]。ToString(); 
DataTable dt = new DataTable();
SqlDataReader dr = null ;
使用(SqlConnection conn = new SqlConnection(conStr))
{
string sql = string .Format( @ 选择前1个ID来自用户订单ID desc);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
conn.Open();

dr = cmd.ExecuteReader();

dt.Load(dr);
txtUID.Text = dr [ ID]。ToString();
conn.Close();
cmd = null ;

}

解决方案

以下是您的代码的固定版本:

< pre lang =cs> string conStr = ConfigurationManager.ConnectionStrings [ CStringCRM]的ToString();

使用(SqlConnection conn = new SqlConnection(conStr))
使用(SqlCommand cmd = new SqlCommand( @ SELECT top 1 ID FROM用户订单ID desc,conn))
{
conn.Open();
使用(SqlDataReader dr = command.ExecuteReader(CommandBehavior.CloseConnection))
{
if (dr.Read())
{
txtUID.Text = Convert.ToString(dr [ ID]);
}
}
}



  1. CPaini建议的一致列名;
  2. 删除未使用的 DataTable dt.Load(dr),如CPallini和CodeMaster_Noob所建议的那样;
  3. 使用块在中包装 SqlDataReader ,并告诉它在完成时关闭连接;
  4. 在尝试访问 SqlDataReader 中的值之前,添加了所需的 dr.Read()调用;
  5. 替换 dr [ID]。ToString() with Convert.ToString(dr [ID]) ,如果列值为 null ;


Quote:

string sql = string.Format(@SELECT top 1 ID FROM用户订单ID desc);



Quote:

txtUID.Text = dr [ UID ] .ToString();



我看到不匹配...




请注意, DataTable 在您的代码中没用。


what is the problem with these codes please help

string conStr = ConfigurationManager.ConnectionStrings["CStringCRM"].ToString();
            DataTable dt = new DataTable();
            SqlDataReader dr = null;
            using(SqlConnection conn = new SqlConnection(conStr))
            {
                string sql = string.Format(@"SELECT top 1 ID FROM User order by ID desc"); 
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;
                conn.Open();

                dr = cmd.ExecuteReader();

                dt.Load(dr);
                txtUID.Text = dr["ID"].ToString();
                conn.Close();
                cmd = null;

            }

解决方案

Here's a fixed version of your code:

string conStr = ConfigurationManager.ConnectionStrings["CStringCRM"].ToString();

using (SqlConnection conn = new SqlConnection(conStr))
using (SqlCommand cmd = new SqlCommand(@"SELECT top 1 ID FROM User order by ID desc", conn))
{
    conn.Open();
    using (SqlDataReader dr = command.ExecuteReader(CommandBehavior.CloseConnection))
    {
        if (dr.Read())
        {
            txtUID.Text = Convert.ToString(dr["ID"]);
        }
    }
}


  1. Consistent column name, as suggested by CPallini;
  2. Removed the un-used DataTable and dt.Load(dr), as suggested by CPallini and CodeMaster_Noob;
  3. Wrapped the SqlDataReader in a using block, and told it to close the connection when finished;
  4. Added the required dr.Read() call before attempting to access values from the SqlDataReader;
  5. Replaced dr["ID"].ToString() with Convert.ToString(dr["ID"]), in case the column value is null;


Quote:

string sql = string.Format(@"SELECT top 1 ID FROM User order by ID desc");


Quote:

txtUID.Text = dr["UID"].ToString();


I see a mismatch...


Please note, the DataTable is useless in your code.


这篇关于为什么我的代码无法将值分配到文本框中....的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆