VS C# 在一个界面中,调用另外一个界面的textbox,如何实现?
比如说,我想在Form5的界面下调用Form1中textBox1.Text信息,怎么实现。。Form5下的代码:
public Form5()
{
InitializeComponent();
Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='"+;(输入Form1中textBox1.Text信息)
求大神帮忙。。 C# 界面 --------------------编程问答-------------------- 最简单的方法是把FORM1里边的textBox1 声明称public的
--------------------编程问答-------------------- Form1里边 public TextBox textBox1=new TextBox();
public Form5()
{
InitializeComponent();
Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='"+F.textBox1.Text+"'; --------------------编程问答-------------------- 是在textbox1的属性中把modifiers属性由private改为public吗? --------------------编程问答--------------------
对 --------------------编程问答--------------------
是在textbox1的属性中把modifiers属性由private改为public吗?
最简单的方法是把FORM1里边的textBox1 声明称public的
对
Form1里边 public TextBox textBox1=new TextBox();
public Form5()
{
InitializeComponent();
Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='"+F.textBox1.Text+"';
见图片
我写的两种不同的代码,都出现了同样的错误。
第一种代码:
InitializeComponent();
Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='" + F.textBox1.Text + "'";
con = new SqlConnection(st);
adap = new SqlDataAdapter(sqlstr, con);
SqlCommandBuilder builder = new SqlCommandBuilder(adap);
adap.UpdateCommand = builder.GetUpdateCommand();
ds = new DataSet();
adap.Fill(ds, "stujiben");
myBind = this.BindingContext[ds, "stujiben"];
n = myBind.Position;
this.textBox1.DataBindings.Add(new Binding("Text", ds, "stujiben.sid"));
this.textBox2.DataBindings.Add(new Binding("Text", ds, "stujiben.name"));
this.textBox3.DataBindings.Add(new Binding("Text", ds, "stujiben.sex"));
this.textBox4.DataBindings.Add(new Binding("Text", ds, "stujiben.pep"));
this.textBox7.DataBindings.Add(new Binding("Text", ds, "stujiben.pol"));
this.textBox5.DataBindings.Add(new Binding("Text", ds, "stujiben.birt"));
this.textBox6.DataBindings.Add(new Binding("Text", ds, "stujiben.addr"));
this.textBox8.DataBindings.Add(new Binding("Text", ds, "stujiben.id"));
this.textBox9.DataBindings.Add(new Binding("Text", ds, "stujiben.tel"));
this.textBox10.DataBindings.Add(new Binding("Text", ds, "stujiben.haddr"));
this.textBox11.DataBindings.Add(new Binding("Text", ds, "stujiben.etim"));
this.textBox12.DataBindings.Add(new Binding("Text", ds, "stujiben.post"));
this.textBox13.DataBindings.Add(new Binding("Text", ds, "stujiben.email"));
this.textBox14.DataBindings.Add(new Binding("Text", ds, "stujiben.col"));
this.textBox15.DataBindings.Add(new Binding("Text", ds, "stujiben.mai"));
this.textBox16.DataBindings.Add(new Binding("Text", ds, "stujiben.xq"));
this.textBox17.DataBindings.Add(new Binding("Text", ds, "stujiben.xz"));
this.textBox18.DataBindings.Add(new Binding("Text", ds, "stujiben.cln"));
this.textBox19.DataBindings.Add(new Binding("Text", ds, "stujiben.con"));
this.textBox20.DataBindings.Add(new Binding("Text", ds, "stujiben.oth"));
private SqlDataAdapter adap;
private DataSet ds;
private BindingManagerBase myBind;
private int n;
第二种代码:
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();
if (sdr.Read())
{
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();
}
问题就出现在了
“ Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='" + F.textBox1.Text + "'"; ”
这两句上面了。。
不知道怎样改正。 --------------------编程问答-------------------- 你可以定义一个专门的类的某字段去存textBox1的值啊!这样你就可以直接拿那个类的某属性的值就好了 --------------------编程问答--------------------
出现点问题,当我把代码打上去之后,出现了一个意想不到的错误,Form5的界面上什么信息都没有,只留下空白的textbox...
Form1里边 public TextBox textBox1=new TextBox();
public Form5()
{
InitializeComponent();
Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='"+F.textBox1.Text+"';
见图片
我写的两种不同的代码,都出现了同样的错误。
第一种代码:
InitializeComponent();
Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='" + F.textBox1.Text + "'";
con = new SqlConnection(st);
adap = new SqlDataAdapter(sqlstr, con);
SqlCommandBuilder builder = new SqlCommandBuilder(adap);
adap.UpdateCommand = builder.GetUpdateCommand();
ds = new DataSet();
adap.Fill(ds, "stujiben");
myBind = this.BindingContext[ds, "stujiben"];
n = myBind.Position;
this.textBox1.DataBindings.Add(new Binding("Text", ds, "stujiben.sid"));
this.textBox2.DataBindings.Add(new Binding("Text", ds, "stujiben.name"));
this.textBox3.DataBindings.Add(new Binding("Text", ds, "stujiben.sex"));
this.textBox4.DataBindings.Add(new Binding("Text", ds, "stujiben.pep"));
this.textBox7.DataBindings.Add(new Binding("Text", ds, "stujiben.pol"));
this.textBox5.DataBindings.Add(new Binding("Text", ds, "stujiben.birt"));
this.textBox6.DataBindings.Add(new Binding("Text", ds, "stujiben.addr"));
this.textBox8.DataBindings.Add(new Binding("Text", ds, "stujiben.id"));
this.textBox9.DataBindings.Add(new Binding("Text", ds, "stujiben.tel"));
this.textBox10.DataBindings.Add(new Binding("Text", ds, "stujiben.haddr"));
this.textBox11.DataBindings.Add(new Binding("Text", ds, "stujiben.etim"));
this.textBox12.DataBindings.Add(new Binding("Text", ds, "stujiben.post"));
this.textBox13.DataBindings.Add(new Binding("Text", ds, "stujiben.email"));
this.textBox14.DataBindings.Add(new Binding("Text", ds, "stujiben.col"));
this.textBox15.DataBindings.Add(new Binding("Text", ds, "stujiben.mai"));
this.textBox16.DataBindings.Add(new Binding("Text", ds, "stujiben.xq"));
this.textBox17.DataBindings.Add(new Binding("Text", ds, "stujiben.xz"));
this.textBox18.DataBindings.Add(new Binding("Text", ds, "stujiben.cln"));
this.textBox19.DataBindings.Add(new Binding("Text", ds, "stujiben.con"));
this.textBox20.DataBindings.Add(new Binding("Text", ds, "stujiben.oth"));
private SqlDataAdapter adap;
private DataSet ds;
private BindingManagerBase myBind;
private int n;
第二种代码:
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();
if (sdr.Read())
{
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();
}
问题就出现在了
“ Form1 F = new Form1();
string sqlstr = "select * from stujiben where sid='" + F.textBox1.Text + "'"; ”
这两句上面了。。
不知道怎样改正。
TextBox.Text是String类型,你的SID是什么类型,如果你是想模糊查询应该写sid like '"+F.textBox1.Text +"' --------------------编程问答-------------------- 上面错了不好意思是 sid like '%"+F.textBox1.Text +"%' --------------------编程问答-------------------- 你是原本查询的到改了那两句后查不到了? 如果不是,那就是你的查询语句有问题 或者 你数据库中没数据 --------------------编程问答--------------------
你是原本查询的到改了那两句后查不到了? 如果不是,那就是你的查询语句有问题 或者 你数据库中没数据
新加的代码为:
if (sdr.Read())
{
。。。。。。。。。(省略)
}
}
else
{
MessageBox.Show("没有记录");
}
运行之后,真的就出现了“没有记录”的提示信息。
这我就更疑惑不解了,我的F.textBox1.Text是登录信息,在初始状态下是没有记录的,但是我在向其中加入我的登录信息了,难道我要在textBox1的属性中改正吗?
--------------------编程问答--------------------
你可以定义一个专门的类的某字段去存textBox1的值啊!这样你就可以直接拿那个类的某属性的值就好了
你可以定义一个专门的类的某字段去存textBox1的值啊!这样你就可以直接拿那个类的某属性的值就好了
求说的具体一点,最好举个实例。
你可以定义一个专门的类的某字段去存textBox1的值啊!这样你就可以直接拿那个类的某属性的值就好了
他的意思是定义一个公共类,里边定义公共变量 --------------------编程问答-------------------- 你把Form1的代码贴上来看看 --------------------编程问答-------------------- 才发现,你是不是把上面那些代码都写到Form5的构造函数里了? --------------------编程问答--------------------
你把Form1的代码贴上来看看
namespace bysj
{
public partial class Form1 : Form
{
public static bool b = false;
public class Ssid {
}
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
String st = @"Data Source=(localdb)\Projects;Initial Catalog=stumane";
SqlConnection conn= new SqlConnection(st);
conn.Open();
String strsql = "select * from stujiben where sid='" + textBox1.Text + "'and code='" + textBox2.Text + "' ";
SqlCommand da = new SqlCommand(strsql, conn);
SqlDataReader myread = da.ExecuteReader();
if (myread.Read())
{
MessageBox.Show(textBox1.Text + "用户通过了!,你不是管理员");
string sid = myread.GetString(0);
myread.Close();
b = true;
this.Hide();
Form2 F = new Form2();
F.Show();
}
else
MessageBox.Show( "用户昵称或密码错误,请重新登录");
}
关键代码就这些。。 --------------------编程问答--------------------
才发现,你是不是把上面那些代码都写到Form5的构造函数里了?
上面错了不好意思是 sid like '%"+F.textBox1.Text +"%'
按照你的方法,我把代码改为了你说的那样,运行之后,结果是textbox并没有出现空白信息,而是信息输出错误,也就是说我想查询学号为0910430102的学生信息(在数据库的表中为第二行),结果显示的确实0910430101的学生信息(在数据库的表中为第一行)。
上面错了不好意思是 sid like '%"+F.textBox1.Text +"%'
输入完整的学号看看,改成这样是模糊查询了 --------------------编程问答--------------------
算是吧。。。有问题吗?
才发现,你是不是把上面那些代码都写到Form5的构造函数里了?
放到LOAD事件里试试 --------------------编程问答--------------------
算是吧。。。有问题吗?
才发现,你是不是把上面那些代码都写到Form5的构造函数里了?
放到LOAD事件里试试
补充:.NET技术 , C#