.NET下的SQL操作

   这段时间研究了WCF和C#的ADO.NET, SQL操作,LINQ查询虽然方便,但是对于刚开始学习,特别是没有好的指导老师的人来说,还是不推荐大范围使用。所以这里还是使用常规的数据库操作方法。

  1. 连接数据库,其实作用并不大,好处在于自动生成ConnectString。

image

右键点击 Data Connections,选择Add Connection, 开始添加数据库,注意\SQLEXPRESS,另外如果要远程链接,现在数据库中注册有权限的帐号,然后登陆。

2. 连接ADO.NET,作用在于会自动生成对于的数据结构类,方便我们的操作,也就不用每个表都要创建类了。

  右键点击Project, 添加Data页的ADO.NET,同样也是配置数据库的连接。

image

3. 在我们第一次连接的数据库Server属性中有一个Connection String, Copy之。

        public int SQL_connect()
        {
            SQLConnect = new SqlConnection();

            SQLConnect.ConnectionString = "Data Source=WIN-01L9BROHARG\\SQLEXPRESS;Initial Catalog=TutorNet;Persist Security Info=True;User ID=ctq;Password=ctqmumu";

            SQLConnect.Open();

            if (SQLConnect.State != System.Data.ConnectionState.Open)
            {
                //TODO output error
                return ErrorReturn;
            }

            return 0;
        }

有返回值的数据库操作

 
 public List SQL_select_user_By_ID(string UID)
        {
            if (SQLConnect == null) SQL_connect();

            List listUser = new List();

            try
            {
                SQLCommand = new SqlCommand();

                SQLCommand.Connection = SQLConnect;

                SQLCommand.CommandText = "SELECT * FROM UserTable WHERE UID = '" + UID + "';";

                SQLCommand.CommandType = CommandType.Text;

                SqlDataReader reader = SQLCommand.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        listUser.Add(new UserTable
                        {
                            UID = (int)reader[0],
                            Password = (string)reader[1],
                            Name = (string)reader[2],
                            PhoneNumber = (reader[3] is System.DBNull) ? null : (string)reader[3],
                            Email = (string)reader[4],
                            ST = (reader[5] is System.DBNull) ? 0 : (int)reader[5],
                            Point = (reader[6] is System.DBNull) ? 0 : (int)reader[6],
                            PopIndex = (reader[7] is System.DBNull) ? 0 : (int)reader[7],
                            Login = (int)reader[8]
                        });
                    }
                }
                else
                {
                    //MessageBox.Show("No rows found.");
                }
                reader.Close();

            }
            catch (Exception e)
            {

                return null; // 因为在WCF部署后无法正确处理,所以return null
            }

            return listUser;
        }

无返回类型的操作,返回为bool型,即插入,更新和删除操作

    public bool SQL_UPDATE_UserTable_Login(string UID, int val)
        {
            Int32 recordsAffected = 0;
            try
            {

                string queryString = "UPDATE UserTable SET Login=" + val + " WHERE UID=" + UID + " ;";

                SqlCommand command = new SqlCommand(queryString, SQLConnect);
                recordsAffected = command.ExecuteNonQuery();

            }
            catch (Exception e)
            {
                return false;
            }

            return true;
        }
此条目发表在C#, 编程分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注