当前位置:编程学习 > C#/ASP.NET >>

c#与SQL数据库连接问题

C#2000中连接数据库用了SQLDATAADATER控件  但在C#2005中没有哪个控件 ,  应该怎么连接数据库  用什么控件还是代码   请帮帮我    急 --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter(VS.80).aspx --------------------编程问答--------------------
/// <summary> 
     /// 数据库连接
     /// </summary>
     /// <param name="sqlwhere">连接条件</param>
     /// <returns>结果数据集</returns>
     public static DataSet GetList(string sqlwhere)
 {
         //数据库连接字符
         String connectionString = "Server=localhost;Database=dbTest;uid=sa;pwd=sa;";
        //要执行的Sql语句
         String cmdText = "select * from table";
        if (sqlwhere != "")
        {
            cmdText += " where " + sqlwhere;
        }
        //建立连接
         SqlConnection conn = new SqlConnection(connectionString);
        //生成命名实例
         SqlCommand command = new SqlCommand(cmdText, conn);
        //生成数据集实例
         DataSet ds = new DataSet();
        //生成数据库连接实例
        SqlDataAdapter sqlDA = new SqlDataAdapter();
       //数据源中选择记录
        sqlDA.SelectCommand = command;
        //填充数据集
         sqlDA.Fill(ds);
        //关闭连接
        conn.Close();
        //返回数据集
        return ds; 
   }
--------------------编程问答-------------------- --------------------编程问答-------------------- 用代码,楼上的很详细。 --------------------编程问答-------------------- 尽量不要用控件连接,用代码要好些 --------------------编程问答-------------------- 楼主多看看书吧,数据空间有SqlDataSource AccessDataSource 这个只需要绑定数据源就可以了,
还有链接数据库的代码,

//数据库连接字符串(web.config来配置)
        //<add key="ConnectionString" value="server=127.0.0.1;database=DATABASE;uid=sa;pwd=" />
        public static string connectionString;
        public DbHelperSQL()
        {
        }

        #region  执行简单SQL语句

        /// <summary>
        /// 执行SQL语句,返回影响的记录数
        /// </summary>
        /// <param name="SQLString">SQL语句</param>
        /// <returns>影响的记录数</returns>
        public static int ExecuteSql(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        connection.Close();
                        throw new Exception(E.Message);
                    }
                }
            }
        }

        /// <summary>
        /// 执行多条SQL语句,实现数据库事务。
        /// </summary>
        /// <param name="SQLStringList">多条SQL语句</param>
        public static void ExecuteSqlTran(ArrayList SQLStringList)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                SqlTransaction tx = conn.BeginTransaction();
                cmd.Transaction = tx;
                try
                {
                    for (int n = 0; n < SQLStringList.Count; n++)
                    {
                        string strsql = SQLStringList[n].ToString();
                        if (strsql.Trim().Length > 1)
                        {
                            cmd.CommandText = strsql;
                            cmd.ExecuteNonQuery();
                        }
                    }
                    tx.Commit();
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    tx.Rollback();
                    throw new Exception(E.Message);
                }
            }
        }
        /// <summary>
        /// 执行带一个存储过程参数的的SQL语句。
        /// </summary>
        /// <param name="SQLString">SQL语句</param>
        /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
        /// <returns>影响的记录数</returns>
        public static int ExecuteSql(string SQLString, string content)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand(SQLString, connection);
                System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.NText);
                myParameter.Value = content;
                cmd.Parameters.Add(myParameter);
                try
                {
                    connection.Open();
                    int rows = cmd.ExecuteNonQuery();
                    return rows;
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    throw new Exception(E.Message);
                }
                finally
                {
                    cmd.Dispose();
                    connection.Close();
                }
            }
        }
        /// <summary>
        /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
        /// </summary>
        /// <param name="strSQL">SQL语句</param>
        /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
        /// <returns>影响的记录数</returns>
        public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand(strSQL, connection);
                System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@fs", SqlDbType.Image);
                myParameter.Value = fs;
                cmd.Parameters.Add(myParameter);
                try
                {
                    connection.Open();
                    int rows = cmd.ExecuteNonQuery();
                    return rows;
                }
                catch (System.Data.SqlClient.SqlException E)
                {
                    throw new Exception(E.Message);
                }
                finally
                {
                    cmd.Dispose();
                    connection.Close();
                }
            }
        }

        /// <summary>
        /// 执行一条计算查询结果语句,返回查询结果(object)。
        /// </summary>
        /// <param name="SQLString">计算查询结果语句</param>
        /// <returns>查询结果(object)</returns>
        public static object GetSingle(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        object obj = cmd.ExecuteScalar();
                        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                        {
                            return null;
                        }
                        else
                        {
                            return obj;
                        }
                    }
                    catch (System.Data.SqlClient.SqlException e)
                    {
                        connection.Close();
                        throw new Exception(e.Message);
                    }
                }
            }
        }


--------------------编程问答-------------------- 右键点击选项卡,单击“选择项”菜单:


找到SqlDataAdapter加到工具箱即可,所有其他找不到的控件,都可以使用这个方法添加到工具箱。

工具箱支持子母索引,所以你可以按下“s”,快速定位到s开头的控件。 --------------------编程问答-------------------- 最好不要用控件去连接,以后会生出很多麻烦事 --------------------编程问答-------------------- 谢谢你们 我没学过C#但是我要用它做毕业设计  结果错误麻烦很多 --------------------编程问答-------------------- /// <summary> /// 数据库连接 /// </summary>  /// <param name="sqlwhere">连接条件</param>  /// <returns>结果数据集</returns>  public static DataSet GetList(string sqlwhere) { //数据库连接字符  String connectionString = "Server=localhost;Database=dbTest;uid=sa;pwd=sa;"; //要执行的Sql语句  String cmdText = "select * from table"; if (sqlwhere != "") { cmdText += " where " + sqlwhere; } //建立连接  SqlConnection conn = new SqlConnection(connectionString); //生成命名实例  SqlCommand command = new SqlCommand(cmdText, conn); //生成数据集实例  DataSet ds = new DataSet(); //生成数据库连接实例  SqlDataAdapter sqlDA = new SqlDataAdapter(); //数据源中选择记录  sqlDA.SelectCommand = command; //填充数据集  sqlDA.Fill(ds); //关闭连接  conn.Close(); //返回数据集  return ds; }

--------------------编程问答-------------------- uid=sa;pwd=sa是什么意思 --------------------编程问答-------------------- 最好用动态连接,不要用连接控件 --------------------编程问答-------------------- 动态连接是指的代码吗 --------------------编程问答--------------------  using (SqlConnection connection = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        connection.Close();
                        throw new Exception(E.Message);
                    }
                }
            } --------------------编程问答--------------------
引用 5 楼 qkqlqq0288 的回复:
尽量不要用控件连接,用代码要好些

同意!!!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,