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;
}还是不行
希望各位帮忙解答,最好有参考的代码!因为比较急!所以不要给什么设置断点的建议。在线等,谢了!


...全文
184 9 打赏 收藏 转发到动态 举报
写回复
用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不可访问,因为它受到保护级别限制
明日科技出版的c#开发典型模块大全配套光盘,要的可以下载,因大小受限,分开上传! 第1章 认识C#及开发环境 1.1 C#概述 1.1.1 C#发展历程 1.1.2 C#语言编程环境 1.2.NETFramework2.0简介 1.2.1 什么是.NETFramework2.0 1.2.2.NETFramework2.0特性 1.3 安装集成开发环境VisualStudio2005 1.3.1 安装VisualStudio2005开发环境 1.3.2 安装MSDN帮助 1.3.3 如何使用MSDN帮助 1.3.4 利用MSDN帮助附带的示例学习编程 1.4 启动VisualStudio2005开发环境 1.4.1 启动VisualStudio2005 1.4.2 创建项目 1.5 熟悉VisualStudio2005集成开发环境 1.5.1 新特性 1.5.2 主窗口 1.5.3 菜单栏 1.5.4 工具栏 1.5.5 文档窗口 1.5.6 工具箱窗口 1.5.7 解决方案资源管理器窗口 1.5.8 属性窗口 1.5.9 代码编辑器 1.5.10 “错误列表”面板 1.5.11 “输出”面板 1.6 程序调试 1.6.1 断点操作 1.6.2 使用开始、中断和停止执行功能调试程序 1.6.3 单步执行 1.6.4 运行到程序的指定位置 第2章 QQ企业通 2.1 设计思路 2.2 关键技术 2.2.1 INI文件的应用 2.2.2 线程的应用 2.2.3 在Socket中发送大容量的消息 2.2.4 将流序列化或反序列化为对象 2.2.5 用InnerList列表记录信息 2.3 设计过程 2.3.1 库的设计 2.3.2 客户端注册模块设计 2.3.3 客户端登录模块设计 2.3.4 客户端QQ模块设计 2.3.5 客户端消息发送模块设计 2.3.6 服务器端控制台模块设计 第3章 SQL数据表提取器模块 3.1 概述 3.2 关键技术 3.2.1 如何备份数据库 3.2.2 如何还原数据库 3.2.3 如何附加数据库 3.2.4 如何分离数据库 3.2.5 设置数据库模式 3.3 设计过程 3.3.1 主窗体 3.3.2 获取服务器名称 3.3.3 获取所有数据库 3.3.4 获取所有数据表 3.3.5 备份数据库 3.3.6 还原数据库 3.3.7 附加数据库 3.3.8 分离数据库 3.3.9 导出表结构 3.3.10 导出数据 第4章 万能搜索模块 4.1 设计思路 4.2 关键技术 4.2.1 如何制作一个接口程序 4.2.2 实现接口程序的信息互传 4.2.3 如何将接口程序加载到其他程序中 4.2.4 怎样操作RichtextBox控件的选择文本 4.2.5 如何获取数据表中字段的描述信息 4.3 设计过程 4.3.1 获取数据表中字段的中文信息 4.3.2 添加数据表的查询条件 4.3.3 向SQL语句中添加括号 4.3.4 查询生成后的SQL语句 4.3.5 主程序获得接口信息 第5章 万能打印模块 5.1 设计思路 5.2 关键技术 5.2.1 打印设置(PrintDocument) 5.2.2 打印预览对话框(PrintPreviewDialog) 5.2.3 打印对话框(PrintDialog) 5.2.4 获取指定颜色和字体样式 5.2.5 DataGridView控件的相关应用 5.3 设计过程 5.3.1 打印信息的设置 5.3.2 表格样式的设置 5.3.3 打印的设置 5.3.4 打印数据信息 第6章 决策分析模块 6.1 设计思路 6.2 关键技术 6.2.1 游标的基本操作 6.2.2 存储过程的基本操作 6.2.3 透视表的基本概念 6.2.4 统计表的基本操作 6.2.5 单击显示右键菜单 6.3 设计过程 6.3.1 主窗体的初始化 6.3.2 透视表的筛选 6.3.3 透视表的设计 6.3.4 统计表的设计 第7章 自定义图表控件 7.1 设计思路 7.2 关键技术 7.2.1 控件的生成 7.2.2 如何在项目中添加控件 7.2.3 在“属性”对话框中添加属性 7.2.4 用GDI+绘制图形 7.2.5 如何在控件上绘制图形 7.2.6 获取扇形外弧中心点的位置 7.3 设计过程 7.3.1 向自定义控件中添加属性 7.3.2 获取绘制图表的初始数据 7.3.3 绘制标签框 7.3.4 绘制图表中的表格 7.3.5 绘制条形图 7.3.6 绘制面形图 7.3.7 绘制饼形图 第8章 电子邮件收发模块 8.1 概述 8.2 关键技术 8.2.1 Base64编码格式 8.2.2 SMTP服务 8.2.3 POP3协议 8.2.4 使用Jmail组件接收邮件

110,536

社区成员

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

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

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