源代码如下:
public Form5()
{
InitializeComponent();
string st = @"Data Source=(localdb)\Projects;Initial Catalog=stumane";
SqlConnection con = new SqlConnection(st);
con.Open();
Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='" + F.textBox1.Text + "'";
SqlCommand com=new SqlCommand(sqlstr,con);
SqlDataReader sdr=com.ExecuteReader();
this.textBox1.Text=Convert.ToString(sdr["sid"]);
this.textBox2.Text = Convert.ToString(sdr["name"]);
this.textBox3.Text = Convert.ToString(sdr["sex"]);
this.textBox4.Text = Convert.ToString(sdr["pep"]);
this.textBox5.Text=Convert.ToString(sdr["sid"]);
this.textBox6.Text=Convert.ToString(sdr["sid"]);
this.textBox7.Text=Convert.ToString(sdr["sid"]);
this.textBox8.Text=Convert.ToString(sdr["sid"]);
this.textBox9.Text=Convert.ToString(sdr["sid"]);
this.textBox10.Text=Convert.ToString(sdr["sid"]);
this.textBox11.Text=Convert.ToString(sdr["sid"]); ;
this.textBox12.Text=Convert.ToString(sdr["sid"]);
this.textBox13.Text=Convert.ToString(sdr["sid"]);
this.textBox14.Text=Convert.ToString(sdr["sid"]);
this.textBox15.Text=Convert.ToString(sdr["sid"]);
this.textBox16.Text=Convert.ToString(sdr["sid"]);
this.textBox17.Text=Convert.ToString(sdr["sid"]);
this.textBox18.Text=Convert.ToString(sdr["sid"]); ;
this.textBox19.Text=Convert.ToString(sdr["sid"]);
this.textBox20.Text=Convert.ToString(sdr["sid"]);
sdr.Close();
con.Close();
}
运行到”this.textBox1.Text=Convert.ToString(sdr["sid"]);“时中断,错误为:”在没有任何数据时进行无效的读取尝试。"
大神,我按照你的方法把代码修改了之后,出现了一个意想不到的错误:
textbox居然显示空白,直接上图:
Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='" + F.textBox1.Text + "'";
你的Form1是新的窗体,里面的F.textBox1.Text是否为空?那样当然不会有记录读出
另外为了检测是否有数据,可以加一个else判断:
if (sdr.HasRows)
{
if( sdr.Read())
{
this.textBox1.Text=Convert.ToString(sdr["sid"]);
......
}
}
else
{
MessageBox.Show("没有记录");
}
我用你的方法检测了一下,居然真的出现了“没有记录”,这我就更疑惑不解了,我的F.textBox1.Text是登录信息,在初始状态下是没有记录的,但是我在向其中加入我的登录信息了,难道我要在textBox1的属性中改正吗?
本回答被提问者和网友采纳C#数据库编程,“在没有任何数据时进行无效的读取尝试”算什么错误...
\/\/首先应该先检查数据表是否有数 if (sdr.HasRows){ \/\/其次,数据要先读出来 if( sdr.Read()){ this.textBox1.Text=Convert.ToString(sdr["sid"]);...} } sdr.Close();con.Close();
C#Form中使用DataReader时出现"不存在此行\/列的数据"错误提示,很纠结的...
表示重新获取了一个reader ,此时只是获取了但没有往下读取数据 也就是在没有执行 Read()方法前 reader对象中的数据是空的 所有会出错 楼主这样两次获取reader有些多余 在第一次获取时保存变量reader 然后 将reader执行Read()如果存在数据则获取该reader的stuID 试试 ...
c#从数据库中读取图片出现参数无效拜托了各位 谢谢
说明: DataGridView 控件替换了 DataGrid 控件并添加了功能;但是也可选择保留 DataGrid 控件以备向后兼容和将来使用。有关更多信息,请参见 Windows 窗体 DataGridView 控件和 DataGrid 控件之间的区别。 使用DataGridView 控件,可以显示和编辑来自多种不同类型的数据源的表格数据。 将数据绑定到 DataGrid...
c# 从XML中读取数据写入datatable中,可执行时出错‘指定的参数已超出有...
1.“指定的参数已超出有效值的范围” 应该是 Rows[i][5] 数组的下标超出范围了,也就是说数据表中没有那么多个栏位,先解释一下 ds.Tables["Data"] 表示 dataset (一个 dataset 中可以用许多个 datatable, datatable 中实际放的是一行行的数据, dataset 是一个指向它下面各个datatable的指针)...
初学C#,现有 多线程处理数据问题: 有1000条记录,每条记录都要这样处理...
你的程序还能正常运行,而不会“卡死”。那么,你就只需要创建一个线程就可以了。另外,你所说的“每条记录都要读取”,一定不能循环1000次来读取,循环连续访问数据库是编程的大忌。一次性读取,然后在程序里循环分析,最后将分析结果统一的一次性保存数据。
c#编程执行update更新语句时为什么提示语法错误???
你的文本框输入中有特殊字符,在使用C#数据库操作时,建议使用参数化查询,而不要拼接字符串,以防止注入式攻击
C#中如何把数据备份到缓存中
第一种:数据量小且算法复杂,你可以把分析后的数据按一定格式(如XML、JSON等)转存到文件中,以后程序再要读这些信息的时候,直接读转存的缓存文件就可以了;第二种:数据量大且算法简单,读取转存文件是没有直接在数据库中取记录执行速度快的,如果这样的话,你可以把原始数据备份到一个表中,用...
...有一个问题是系统运行环境与数据库设计,应该怎么回答?
编程只是一个工具,编程没学好不代表你技术就学不好计算机技术应该是与计算机软件、硬件和网络三个部分相关的各种科技成果和应用的综合,包括了多媒体,数据库,操作系统,嵌入式系统,计算机安全,计算机网络,计算机管理和维护,计算机应用,人工智能,模式识别,管理信息系统等,在我们生活的方方面面计算机技术几乎无处不在。(举...
关于c#中网页编程问题。诚请高手来帮帮忙!(数据库问题)
无论你用什么语言作为后台,如果你只用ACCESS作数据库,那么SQL都是一样的 ASP 自然就是VBScript作为默认服务器端代码,当然也可以用JavaScript作为服务器端代码 例如:没任何声明情况下,这样写的ASP默认为VBScript < ...服务器端程序(VBScript)...> 如果用JavaScript作为服务器端程序 就必须声明了,例如...
C#中,已经添加了具有相同键的项是什么意思?
如果你在尝试添加时遇到这种错误,首先需要检查当前Dictionary中是否已经包含了你想要添加的键值对,以确认是否存在重复。在处理数据库操作时,这种原则同样适用。主键,作为数据表的唯一标识,不能有重复。C#中向数据库添加数据通常有三种方式:直接使用SQL INSERT语句,通过SqlParameter参数,或者利用存储过程。