sqlconnection-老是抛出connection没被初始化,怎么破

问题描述

老是抛出connection没被初始化,怎么破

private void FrmSysLogin_Load(object sender, EventArgs e)
{
conStr = @"Data Source=2011-20131004OT;Initial Catalog=Bank;Integrated Security=true";

    }
    private void btnLogin_Click(object sender, EventArgs e)
    {
        SqlConnection connection = new SqlConnection(conStr);
        SqlCommand cmd = new SqlCommand();
        connection .Open ( );
        cmd .CommandText = " SELECT*FROM Bank WHERE cardID@='6301'&&<='6310' AND pwd=='888888'";
        SqlParameter paraID = new SqlParameter();
        paraID.ParameterName = "cardID";
        paraID.DbType = System.Data.DbType.String;
        paraID.SqlDbType = System.Data.SqlDbType.Char;
        paraID.Direction = System.Data.ParameterDirection.InputOutput;
        paraID.IsNullable = true;
        paraID.Value = "10000";
        cmd.Parameters.Add(paraID);
        SqlParameter paraPWD = new SqlParameter();
        paraPWD.ParameterName = "pwd";
        paraPWD.DbType = System.Data.DbType.String;
        paraPWD.SqlDbType = System.Data.SqlDbType.Char;
        paraPWD.Direction = System.Data.ParameterDirection.InputOutput;
        paraPWD.IsNullable = true;
        paraPWD.Value = "888888";
        cmd.Parameters.Add(paraPWD);
        SqlDataReader reader = cmd.ExecuteReader();
        if (reader.HasRows)
        {
            ;
            MessageBox.Show("登录成功!");
        }
        else
        {
            MessageBox.Show("登录失败!");
        }
        connection.Close();

解决方案

代码很多错误,sql也不对,sql中哪里能用&&运算符呢?你几乎一窍不通。

解决方案二:

SqlDataReader reader = cmd.ExecuteReader();
就是上面这条语句老是说CONNECTION没有被初始化。。。。怎么办

快来人哇~~~~求打救

解决方案三:

SqlDataReader reader = cmd.ExecuteReader();
就是上面这条语句老是说CONNECTION没有被初始化。。。。怎么办

快来人哇~~~~求打救

解决方案四:

  SqlCommand cmd = conn.CreateCommand();
    或者
     SqlCommand cmd = new SQLCommand(sql语句,conn);

解决方案五:

cmd .CommandText = " SELECT*FROM Bank WHERE cardID@='6301'&&<='6310' AND pwd=='888888'";

改为

cmd .CommandText = " SELECT*FROM Bank WHERE cardID>='6301' and cardID <='6310' AND pwd='888888'";

既可。。

解决方案六:

先在方法外对connection置空值,然后在在方法里new

解决方案七:

这种写法真心没见过。或许你可以试试这个


        private const string conn = "Data Source=服务器名; Initial Catalog=数据库名; User id=用户名; Pwd=密码";
        private SqlConnection connection;
        private SqlCommand command;
        private SqlDataReader reader;

       /**
              *打开连接
              */
        private void getCon()
        {
            try
            {
                connection = new SqlConnection(conn);
                connection.Open();

            }
            catch (Exception)
            {

                throw;
            }

        }
                /**
              *关闭连接
              */
        private void closeCon()
        {

            if (reader != null)
            {
                reader.Close();
            }
            if (connection != null)
            {
                connection.Close();

            }

        }
                /**
                 *增删改方法分装
                 */
                 public int IDU(string sql,SqlParameter [] para)
        {

            this.OpenCon();
            command = new SqlCommand(sql, this.connection);
            command.Parameters.AddRange(para);
            int flg = command.ExecuteNonQuery();
            this.CloseCon();
            return flg;
        }
                /**
                 *聚合函数方法封装,常用于登录验证
                 */

        public int doLogin(string sql,SqlParameter [] para)
        {
            this.OpenCon();
            command = new SqlCommand(sql, this.connection);
            command.Parameters.AddRange(para);
            int flg = (int)command.ExecuteScalar();
            this.CloseCon();
            return flg;
        }
                /**
                 *查询方法
                 */
        public SqlDataReader GetRead(string sql,SqlParameter [] para)
        {
            this.OpenCon();
            command = new SqlCommand(sql, this.connection);
            command.Parameters.AddRange(para);
            reader = command.ExecuteReader();
            return reader;
        }

以上是VS常用的方法封装,
如下是调用

             *查询 数据并绑定到ListViewItem上
                         */
            string sql = "select * from Admin";
                        SqlParameter [] para={};
            SqlDataReader reader = this.GetRead(sql,para);
            while(reader.Read()){
                string no = reader["LoginId"].ToString();
                string pwd = reader["LoginPwd"].ToString();
                ListViewItem lvi = new ListViewItem();
                lvi = new ListViewItem(no);
                lvi.SubItems.Add(pwd);
                this.listView1.Items.Add(lvi);

            }
                        /**
                          *登录验证
                             */
                            string sql="select count(*) from userinfo where userPass=@userPass and userName=@userName";
                        SqlParameter[] para =
                   {
                    new SqlParameter("@userPass","123"),
                                        new SqlParameter("@userName","张三")
                                        };
                            int flg=this.doLogin(sql,para);
                            //flg>0有该用户,flg<=0无该用户

                            /**
                              *新增,修改,删除,此处只举例新增
                                */

                                string sql="insert into userinfo values(@userName,@userPass)";
                            SqlParameter[] para =
                   {
                                        new SqlParameter("@userName","张三"),
                    new SqlParameter("@userPass","123")
                                        };
                            int flg=this.IDU(sql,para);
                            //flg>0 新增成功  flg<0新增失败

或许你可以研究研究

解决方案八:

这种写法真心没见过。或许你可以试试这个


        private const string conn = "Data Source=服务器名; Initial Catalog=数据库名; User id=用户名; Pwd=密码";
        private SqlConnection connection;
        private SqlCommand command;
        private SqlDataReader reader;

       /**
              *打开连接
              */
        private void getCon()
        {
            try
            {
                connection = new SqlConnection(conn);
                connection.Open();

            }
            catch (Exception)
            {

                throw;
            }

        }
                /**
              *关闭连接
              */
        private void closeCon()
        {

            if (reader != null)
            {
                reader.Close();
            }
            if (connection != null)
            {
                connection.Close();

            }

        }
                /**
                 *增删改方法分装
                 */
                 public int IDU(string sql,SqlParameter [] para)
        {

            this.OpenCon();
            command = new SqlCommand(sql, this.connection);
            command.Parameters.AddRange(para);
            int flg = command.ExecuteNonQuery();
            this.CloseCon();
            return flg;
        }
                /**
                 *聚合函数方法封装,常用于登录验证
                 */

        public int doLogin(string sql,SqlParameter [] para)
        {
            this.OpenCon();
            command = new SqlCommand(sql, this.connection);
            command.Parameters.AddRange(para);
            int flg = (int)command.ExecuteScalar();
            this.CloseCon();
            return flg;
        }
                /**
                 *查询方法
                 */
        public SqlDataReader GetRead(string sql,SqlParameter [] para)
        {
            this.OpenCon();
            command = new SqlCommand(sql, this.connection);
            command.Parameters.AddRange(para);
            reader = command.ExecuteReader();
            return reader;
        }

以上是VS常用的方法封装,
如下是调用

             *查询 数据并绑定到ListViewItem上
                         */
            string sql = "select * from Admin";
                        SqlParameter [] para={};
            SqlDataReader reader = this.GetRead(sql,para);
            while(reader.Read()){
                string no = reader["LoginId"].ToString();
                string pwd = reader["LoginPwd"].ToString();
                ListViewItem lvi = new ListViewItem();
                lvi = new ListViewItem(no);
                lvi.SubItems.Add(pwd);
                this.listView1.Items.Add(lvi);

            }
                        /**
                          *登录验证
                             */
                            string sql="select count(*) from userinfo where userPass=@userPass and userName=@userName";
                        SqlParameter[] para =
                   {
                    new SqlParameter("@userPass","123"),
                                        new SqlParameter("@userName","张三")
                                        };
                            int flg=this.doLogin(sql,para);
                            //flg>0有该用户,flg<=0无该用户

                            /**
                              *新增,修改,删除,此处只举例新增
                                */

                                string sql="insert into userinfo values(@userName,@userPass)";
                            SqlParameter[] para =
                   {
                                        new SqlParameter("@userName","张三"),
                    new SqlParameter("@userPass","123")
                                        };
                            int flg=this.IDU(sql,para);
                            //flg>0 新增成功  flg<0新增失败

或许你可以研究研究

时间: 2024-10-03 22:01:29

sqlconnection-老是抛出connection没被初始化,怎么破的相关文章

android和pc端socket链接重置抛出:Connection reset

问题描述 android和pc端socket链接重置抛出:Connection reset 这个是android客户端的socket @Override public void run() { try { socket = new Socket(); System.out.println("body-->" + body); socket.connect(new InetSocketAddress(Constans.IP, Constans.PORT), Constans.TIM

关于java异常类Exception问题:对抛出的自定义异常类BulletException做了处理,没对IOException进行异常处理,为什么能编译过程序

问题描述 packagetestBank;//importjava.io.*;classBulletExceptionextendsException{publicBulletException(){super();}publicBulletException(Stringmsg){super(msg);}}classBank{publicstaticfloattotal;publicstaticfloattake[];publicstaticfloatinput[];publicstatici

SelectCommand.Connection 属性尚未初始化 在线急求

问题描述 SqlConnectionmyconn=newSqlConnection();myconn.ConnectionString=ConfigurationManager.ConnectionStrings["db_NetShopConnectionString1"].ConnectionString;myconn.Open();SqlCommandcmd=newSqlCommand();stringP_Str_SqlStr="select*fromtb_Class&q

右下角老是弹出金山毒霸广告怎么办

  弹多了也就嫌烦了,那么对于右下角老是弹出金山毒霸广告这个免费的烦恼,怎么解决呢?金山毒霸官网也提供了很完善的解决方案,只是需要我们在毒霸设置里面做详细的个性化设置,这样就可以关闭金山毒霸右下角弹出的广告了. 这是金山毒霸产品推荐广告提醒设置,在这里可以关闭大部分的毒霸右下角弹窗广告,因为大部分的右下角弹窗广告都是相关产品的推荐,譬如垃圾清理.隐私清理.手机助手等. 这个对于玩游戏的朋友来说,就比较麻烦了,因为每次打开游戏之后,金山毒霸都会在屏幕右下角提示我们已经开启游戏保护模式,退出游戏之后

jsp 页面这样,然后服务器抛出空指针错误

问题描述 jsp 页面这样,然后服务器抛出空指针错误 <%@ page contentType = "text/html;charset= gbb2312" %> <%@ page language = "java" pageEncoding = "gb2312" %> <%@ page import = "java.util.*" %> <%@ page import = "

初学java反射的问题 一直抛出classnotfoundexception

问题描述 初学java反射的问题 一直抛出classnotfoundexception public class TestReflection { public static void main(String[] args) { try{ String str = ""T""; Class c = Class.forName(str); c.newInstance(); } catch (ClassNotFoundException e) { e.printStac

c#-aspnet 抛出文件不能访问异常

问题描述 aspnet 抛出文件不能访问异常 我的asp.net 应用程序,开始先部署到远程的测试服务器,一切正常,但是当我发布到产品服务器的时候,抛出了文件不能访问的异常,弄了很长时间,仍然不能解决,谁能帮助我? The process cannot access the file 'xxx.pdf' because it is being used by another process 这个PDF是程序自己生成的临时文件,不可能有其它程序使用,有很多帖子说是文件流没有关闭,如果没关闭,为什么

视频-android mediaPlayer播放了1.4G的MP4 抛出 传输量过大异常

问题描述 android mediaPlayer播放了1.4G的MP4 抛出 传输量过大异常 package com.example.zyc.surfaceview; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os

安卓应用开发-关于安卓开发,连接tomcat抛出exception

问题描述 关于安卓开发,连接tomcat抛出exception 初学者,自己写的安卓程序,用json连接tomcat,mysql数据库,结果运行时候抛出异常,求帮助! 下面是抛出的异常, 在控制台打印的结果显示除了方括号以外根本没有信息返回 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956