如何使用C#导航数据读取器中的记录?

编程入门 行业动态 更新时间:2024-10-24 02:00:25
本文介绍了如何使用C#导航数据读取器中的记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有4个(Textbox ClientID,Name,Address,CellphoneNO)和一个具有OrderID的组合框 首先使用Clint ID运行查询,从客户表返回一些数据,从订单表返回一些数据 客户可能有多个订单,但只有一个细节显示查询运行时Beacase我不必使用Datagrid 订单组合框ID显示不同的订单 所以我想从Order组合框中选择id来进一步搜索datareader,以便重新显示未显示的订单和表格突变的结果,并在名称,地址等文本框中显示记录 SqlConnection conn = new SqlConnection(Server = localhost; database = tailoringmng; integrated Security = true); string proce = procstr; SqlCommand cmd = new SqlCommand(proce,conn); cmd.CommandType = CommandType.StoredProcedure; cmd .Parameters.Add(new SqlParameter(dbpar,dbtype))。Value = searchkey; SqlDataAdapter da = new SqlDataAdapter(cmd); SqlDataReader reader = reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); if(reader.HasRows) { int rowcount = 0; while(reader.Read() ) { rowcount ++; txtid.Text = reader [ClientID]。ToString(); txtname.Text = reader [Name]。ToString(); txtmobile.Text = reader [Mobile]。ToString(); txtcity.Text = reader [city]。ToString(); txtaddress.Text = reader [address]。ToString(); cmborderid.Items.Add(reader [orderId]。ToString()); tsddate.Text = reader [DDate]。ToString(); lbddayleft.Text = reader [Days_Left ] .ToString(); ttstatus.Text = reader [Status]。ToString(); conn.Close(); } catch(例外情况) { MessageBox.Show(ex.Message); } 当我调用此函数时所有文本框都填充数据但是当我在运行时从订单ID组合框中选择一个值时,没有任何更改值保持不变...解决方案是什么?

i have 4 (Textbox ClientID, Name ,Address ,CellphoneNO) and one Combo Box Having OrderID First the Query Run Using Clint ID that Return Some Data from Clienttable and some from Order Table Client may has Many Orders but there's only one details Shown when query run Beacase i don't have to use Datagrid in the Order combobox id are Shown of different order so i want to select id from Order combo box to further search the datareader for remaing orders that are not shown and the result of a form sudden change and show records in the textboxes of Name ,address,etc SqlConnection conn = new SqlConnection("Server= localhost; database=tailoringmng; integrated Security=true"); string proce = procstr; SqlCommand cmd = new SqlCommand(proce,conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter(dbpar,dbtype)).Value=searchkey; SqlDataAdapter da = new SqlDataAdapter(cmd); SqlDataReader reader = reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); if (reader.HasRows) { int rowcount = 0; while (reader.Read()) { rowcount++; txtid.Text = reader["ClientID"].ToString(); txtname.Text = reader["Name"].ToString(); txtmobile.Text = reader["Mobile"].ToString(); txtcity.Text = reader["city"].ToString(); txtaddress.Text = reader["address"].ToString(); cmborderid.Items.Add(reader["orderId"].ToString()); tsddate.Text = reader["DDate"].ToString(); lbddayleft.Text = reader["Days_Left"].ToString(); ttstatus.Text = reader["Status"].ToString();conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } when i call this function All the Textboxs are Fill with data but when i select a value from order id combobox at run time nothing change value remain the same ...what's the solution

推荐答案

你需要使用 HasRows 和而来浏览 DataReader 。 You need to use HasRows and while to navigate through a DataReader. using (SqlDataReader dr = cmd.ExecuteReader()) { if (dr.HasRows) { while (dr.Read()) { ....do stuff here } } }

更多推荐

如何使用C#导航数据读取器中的记录?

本文发布于:2023-10-26 09:39:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1529782.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   器中   数据

发布评论

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

>www.elefans.com

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