A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

错误 :无法使用实例引用来访问成员“HRMan.DataAccess.conn”;请改用类型名来限定它
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace HRMan
{
    class DataAccess
    {
        static SqlConnection conn;
        static string Str = "Data Source=(local);Initial Catalog =HRMan;Integrated Security = SSPI;";
        public DataAccess()
        {
            conn = new SqlConnection(Str);
            conn.Open();
        }
        public int ExeSQL(string sql)
        {
            //实例化一个Sqlcommand对象,参数为sql语句和数据库连接成员
            SqlCommand cmd = new SqlCommand(sql, this.conn);
            try
            {
                //调用sqlcommand对象的executenonquery()访问
                cmd.ExecuteNonQuery();
                return 0;
            }
            catch (System.Data.SqlClient.SqlException ex)  //异常处理
            {
                MessageBox.Show(ex.Message.ToString());
                return -1;
            }
            finally
            {
                cmd.Dispose();
                this.conn.Close();
            }
        }
}
}

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

6 个回复

倒序浏览
  conn = new SqlConnection(Str);
是这一行代码呢有问题吧
实例化一个类
SqlConnection conn = new SqlConnection(Str);

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
static SqlConnection conn;
你定义的SqlConnection 是当前类的一个静态成员
那么在你的
//实例化一个Sqlcommand对象,参数为sql语句和数据库连接成员
SqlCommand cmd = new SqlCommand(sql, this.conn);
就不能使用this关键字来调用conn这个成员,
this能点出来的成员只是和实例相关的成员,static成员是和当前类相关。
所以你把this.conn改成conn就可以了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
问题出现在这里: static SqlConnection conn。当对象一旦声明成静态是不能通过NEW关键字new出来的。把static去掉这程序应该就没问题了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
楼上正解,SqlConnection conn无法访问,改用public即可解决问题。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
SqlConnection conn 是不是要该成public

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
conn = new SqlConnection(Str);
这个你没有实例化!所以报错!你可以试着改成SqlConnection  conn = new SqlConnection(Str);
这样应该就没有问题!!!:victory:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马