C# 窗体的值传给类模块

wwjlee123 2014-02-18 10:53:16
在项目里面有一个form4,主要代码如下:
public partial class Form4 : Form
{
public static string uname;
public static string pword;
public static string server;
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
this.comboBox1.Items.AddRange(new string[] { "ORCL", "TXYY" });
this.comboBox1.SelectedIndex = 0;
uname = textBox1.Text.Trim();
pword = textBox2.Text.Trim();
server = comboBox1.Text.Trim();
}
private void button1_Click(object sender, EventArgs e)
{
uname = textBox1.Text.Trim();
pword = textBox2.Text.Trim();
server = comboBox1.Text.Trim();

OracleConnection conn = new OracleConnection();
conn.ConnectionString = "Data Source= " + Form4.server + ";User ID=" + Form4.uname + ";Password=" + Form4.pword + "";
conn.Open();
然后我在项目里面创建了一个类,代码如下
namespace WindowsFormsApplication3
{
class DataBase
{
static string strConn = "Data Source= " + Form4.server + ";User ID=" + Form4.uname + ";Password=" + Form4.pword + "";
static OracleConnection sqlcon=new OracleConnection (strConn);
但是运行发现窗体的uname,pword,server 这三个值不能传到类里面。
后来又改了一下,在form4里面加 DataBase c = new DataBase();
c.chuangZ(textBox1.Text.Trim(), textBox2.Text.Trim(), comboBox1.Text.Trim());
在类里面加 public string chuangZ(string usename, string psdword, string server)
{
string strConn;
strConn = "Data Source ='" + server + "';User ID='" + usename + "';+PWD='" + psdword+ "';";
return strConn;
}还是不行
希望各位帮忙解答,最好有参考的代码!因为比较急!所以不要给什么设置断点的建议。在线等,谢了!


...全文
192 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BenBenBears 2014-02-18
  • 打赏
  • 举报
回复

class DataBase(Form f)//类构造函数
{
 static string strConn = "Data Source= " + Form4.server +......//加断点,方便待会看到对应的值
}
Form中的button事件

            uname = textBox1.Text.Trim();
            pword = textBox2.Text.Trim();
            server = comboBox1.Text.Trim();
            DataBase _dataBase=new DataBase(this);//添加这行代码
            .......
mnxm 2014-02-18
  • 打赏
  • 举报
回复
strConn 也是静态的在运行时就去获取 public static string uname; public static string pword; public static string server; 的值 此时Form4肯定没有实例化 所以无法取值
mnxm 2014-02-18
  • 打赏
  • 举报
回复
当Form4未实例化时 public static string uname; public static string pword; public static string server; 肯定没有值 此时如果实例化DataBase类肯定无法获取值 看你的Form4与DataBase的实例化顺序
feiyun0112 2014-02-18
  • 打赏
  • 举报
回复
在修改后重新赋值
private void button1_Click(object sender, EventArgs e)
{
uname = textBox1.Text.Trim();
pword = textBox2.Text.Trim();
server = comboBox1.Text.Trim();
DataBase.strConn = "Data Source= " + Form4.server + ";User ID=" + Form4.uname + ";Password=" + Form4.pword + "";


*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
BenBenBears 2014-02-18
  • 打赏
  • 举报
回复

public class DataBase(Form f)//类构造函数。。。在这里添加public
{
 static string strConn = "Data Source= " + Form4.server +......//加断点,方便待会看到对应的值
}
乌月龙井 2014-02-18
  • 打赏
  • 举报
回复
uname pword server 都还木有值,所以不能去获取他们的值,你可以在实例化后,手动获取他们的值 private void button1_Click(object sender, EventArgs e) { uname = textBox1.Text.Trim(); pword = textBox2.Text.Trim(); server = comboBox1.Text.Trim(); //////////////3个变量在这里获取了相应值,在后面就可以从变量取值了 OracleConnection conn = new OracleConnection(); conn.ConnectionString = "Data Source= " + Form4.server + ";User ID=" + Form4.uname + ";Password=" + Form4.pword + ""; conn.Open();
mnxm 2014-02-18
  • 打赏
  • 举报
回复
引用 5 楼 wwjlee123 的回复:
[quote=引用 1 楼 feiyun0112 的回复:] 在修改后重新赋值 private void button1_Click(object sender, EventArgs e) { uname = textBox1.Text.Trim(); pword = textBox2.Text.Trim(); server = comboBox1.Text.Trim(); DataBase.strConn = "Data Source= " + Form4.server + ";User ID=" + Form4.uname + ";Password=" + Form4.pword + ""; ***************************************************************************** 签名档: http://feiyun0112.cnblogs.com/
还是不懂,能不能详细点,我家这句代码到form4,出错说 DataBase.strConn不可访问,因为它受到保护级别限制[/quote] 这个错误意思是它没有被声明为public
wwjlee123 2014-02-18
  • 打赏
  • 举报
回复
引用 1 楼 feiyun0112 的回复:
在修改后重新赋值 private void button1_Click(object sender, EventArgs e) { uname = textBox1.Text.Trim(); pword = textBox2.Text.Trim(); server = comboBox1.Text.Trim(); DataBase.strConn = "Data Source= " + Form4.server + ";User ID=" + Form4.uname + ";Password=" + Form4.pword + ""; ***************************************************************************** 签名档: http://feiyun0112.cnblogs.com/
还是不懂,能不能详细点,我家这句代码到form4,出错说 DataBase.strConn不可访问,因为它受到保护级别限制

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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