在textbox中读取多行SQL数据

qq_39292537 2017-06-28 04:20:16
现在我想查询编号为A的人在这个表格中所有的信息,这个A在一个SQL数据表中出现了多次,怎样在我按“签到情况”按钮时,textbox可以吧所有SQL表中的编号为A的这个信息都调用出来,一行显示一个。同时,在数据库每有一行A的数据,累计1次,显示在次数的textbox中。附界面和目前代码,目前已经实现调用一行。麻烦各位大大,能有一个算一个。
try
{
string query = "select * from 会员管理 where num='"
+ textBox1.Text + "' and name='" + textBox3.Text + "'";

DataSet db = new DataSet();
SqlDataAdapter sq = new SqlDataAdapter(query, con);
sq.Fill(db);
textBox11.Text = db.Tables[0].Rows[0]["date"].ToString();

}
catch
{
MessageBox.Show("账号或密码错误,请查询后再试");//异常  
}
...全文
204 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2017-06-29
  • 打赏
  • 举报
回复
这个问题解决了就结贴吧, 一事一议
qq_39292537 2017-06-28
  • 打赏
  • 举报
回复
[quote=引用 6 楼 yenange 的回复:] 请问,我想设置一个回滚,如果两个语句都成功,则执行,否则回滚到初始状态,怎么做?附代码 if (dataGridView2.SelectedRows.Count == 0) { MessageBox.Show("请先选中要删除的记录!"); return; } string strID = dataGridView2.SelectedRows[0].Cells[0].Value.ToString(); string str = "delete from 教练信息 where 教练编号='" + strID + "'"; string qwe = "delete from 课程 where 课程编号='" + strID + "'"; SqlCommand sqlcom = new SqlCommand(str, con); SqlCommand qqq = new SqlCommand(qwe, con); int flag = 0; try { con.Open(); if (sqlcom.ExecuteNonQuery() > 0) MessageBox.Show("删除会员信息成功"); else MessageBox.Show("删除会员信息失败!"); flag++; if (qqq.ExecuteNonQuery() > 0) MessageBox.Show("删除会员卡成功"); else MessageBox.Show("删除会员卡失败!"); } catch (Exception ex) { MessageBox.Show("失败,SQL:\r\n" + (flag == 0 ? str : qwe) + " \r\n原因:" + ex.Message);//输出详细的异常信息 } finally { con.Close(); } 现在有一个可以,另一个不可以,最好能显示出原因,谢谢
zhouyuehai1978 2017-06-28
  • 打赏
  • 举报
回复
把你程序里面的这句: textBox11.Text = db.Tables[0].Rows[0]["date"].ToString(); 替换成他的这段:

StringBuilder sb = new StringBuilder();
            foreach (DataRow dr in db.Tables[0].Rows) 
            {
                sb.AppendFormat("{0}\r\n", dr["date"].ToString());
            }
            //你的代码,加上:
            textBox11.Text = sb.ToString();
zhouyuehai1978 2017-06-28
  • 打赏
  • 举报
回复
引用 7 楼 qq_39292537 的回复:
[quote=引用 6 楼 yenange 的回复:] [code=csharp]using System; DataRow dr = dt.NewRow(); dr[0] = string.Format("2017-01-0{0}",i.ToString()); dt.Rows.Add(dr); 请问 这段是用来定义日期的么?
这段是用来做测试数据的,不用看,看下面那段,备注写的很清楚
qq_39292537 2017-06-28
  • 打赏
  • 举报
回复
[quote=引用 6 楼 yenange 的回复:] [code=csharp]using System; DataRow dr = dt.NewRow(); dr[0] = string.Format("2017-01-0{0}",i.ToString()); dt.Rows.Add(dr); 请问 这段是用来定义日期的么?
吉普赛的歌 2017-06-28
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//测试数据
DataTable dt = new DataTable();
dt.Columns.Add("date");

for (int i = 1; i < 4; i++)
{
DataRow dr = dt.NewRow();
dr[0] = string.Format("2017-01-0{0}",i.ToString());
dt.Rows.Add(dr);
}

//你需要的, 只是下面这一段
StringBuilder sb = new StringBuilder();
foreach (DataRow dr in dt.Rows)
{
sb.AppendFormat("{0}\r\n", dr["date"].ToString());
}
//你的代码,加上:
//textBox11.Text = sb.ToString();

Console.WriteLine(sb.ToString());
Console.Read();
}
}
}

二月十六 2017-06-28
  • 打赏
  • 举报
回复
建议楼主到C#版问问
zhouyuehai1978 2017-06-28
  • 打赏
  • 举报
回复
好久没写了我也不会写啊 记得好像用foreach? 你的db.Tables[0].Rows[0]["date"].ToString()是获取这个表第一条记录 db.Tables[0].Rows[i]["date"].ToString()就是获得这个表第i条记录 在循环里面把值加起来,然后赋值给extBox11.Text 计数也可以在循环里做啊。 具体循环怎么写我已经忘了,你百度一下吧
qq_39292537 2017-06-28
  • 打赏
  • 举报
回复
引用 2 楼 zhouyuehai1978 的回复:
textBox11.Text = db.Tables[0].Rows[0]["date"].ToString(); 这句改成循环赋值呗
求大大给个示范代码
zhouyuehai1978 2017-06-28
  • 打赏
  • 举报
回复
textBox11.Text = db.Tables[0].Rows[0]["date"].ToString(); 这句改成循环赋值呗
qq_39292537 2017-06-28
  • 打赏
  • 举报
回复
麻烦各位谢谢,能解决那个问题都行

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧