黑马程序员技术交流社区

标题: 下面是我的一段代码,编译后出现了下面的错误 [打印本页]

作者: 周健    时间: 2012-4-14 15:28
标题: 下面是我的一段代码,编译后出现了下面的错误
错误 :无法使用实例引用来访问成员“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();
            }
        }
}
}

作者: 余晓亮    时间: 2012-4-14 20:03
  conn = new SqlConnection(Str);
是这一行代码呢有问题吧
实例化一个类
SqlConnection conn = new SqlConnection(Str);

作者: 郭青松    时间: 2012-4-17 00:54
static SqlConnection conn;
你定义的SqlConnection 是当前类的一个静态成员
那么在你的
//实例化一个Sqlcommand对象,参数为sql语句和数据库连接成员
SqlCommand cmd = new SqlCommand(sql, this.conn);
就不能使用this关键字来调用conn这个成员,
this能点出来的成员只是和实例相关的成员,static成员是和当前类相关。
所以你把this.conn改成conn就可以了。


作者: 谢栋文    时间: 2012-4-17 07:24
问题出现在这里: static SqlConnection conn。当对象一旦声明成静态是不能通过NEW关键字new出来的。把static去掉这程序应该就没问题了
作者: 马跃    时间: 2012-4-17 16:42
楼上正解,SqlConnection conn无法访问,改用public即可解决问题。
作者: 周俊辉    时间: 2012-4-18 09:59
SqlConnection conn 是不是要该成public
作者: china_xiaowu    时间: 2012-4-18 11:15
conn = new SqlConnection(Str);
这个你没有实例化!所以报错!你可以试着改成SqlConnection  conn = new SqlConnection(Str);
这样应该就没有问题!!!:victory:




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2