为什么我的代码无法将值分配到文本框中....

编程入门 行业动态 更新时间:2024-10-22 18:29:46
本文介绍了为什么我的代码无法将值分配到文本框中....的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

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 ; }

解决方案

以下是您的代码的固定版本: 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]); } } }

  • CPaini建议的一致列名;
  • 删除未使用的 DataTable 和 dt.Load(dr),如CPallini和CodeMaster_Noob所建议的那样;
  • 使用块在中包装 SqlDataReader ,并告诉它在完成时关闭连接;
  • 在尝试访问 SqlDataReader 中的值之前,添加了所需的 dr.Read()调用;
  • 替换 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"]); } } }

  • Consistent column name, as suggested by CPallini;
  • Removed the un-used DataTable and dt.Load(dr), as suggested by CPallini and CodeMaster_Noob;
  • Wrapped the SqlDataReader in a using block, and told it to close the connection when finished;
  • Added the required dr.Read() call before attempting to access values from the SqlDataReader;
  • 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.

    更多推荐

    为什么我的代码无法将值分配到文本框中....

    本文发布于:2023-11-30 01:23:44,感谢您对本站的认可!
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:框中   分配   文本   代码

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!