Loading...

java .net

C#访问数据库方法

        #region 执行查询语句返回影响行数
        public static int ExecuteNonQuery(string str_cmd,out string str_error)
        {
            int i=0;
            str_error=string.Empty;
            SqlConnection conn=CreateConn();
            SqlCommand cmd=new SqlCommand(str_cmd,conn);
            try
            {
                conn.Open();
                i=cmd.ExecuteNonQuery();
            }
            catch(Exception ex)
            {
                str_error=ex.Message;
            }
            finally
            {
                conn.Close();
            }
            return i;
        }
        #endregion
        #region 返回第一行第一列
        public static string ExecuteScalar(string str_cmd,out string str_error)
        {
            string str_value=string.Empty;
            str_error=string.Empty;
            SqlConnection conn=CreateConn();
            SqlCommand cmd=new SqlCommand(str_cmd,conn);
            try
            {
                conn.Open();
                str_value=cmd.ExecuteScalar().ToString();
            }
            catch(Exception ex)
            {
                str_error=ex.Message;
            }
            finally
            {
                conn.Close();
            }
            return str_value;
        }
        #endregion
        #region 返回datatbale from datareader
        public static DataTable ExecuteReader(string str_cmd,out string str_error)
        {
            DataTable dt=new DataTable();
            SqlDataReader dr=null;
             str_error=string.Empty;
            SqlConnection conn=CreateConn();
            SqlCommand cmd=new SqlCommand(str_cmd,conn);
            try
            {
                conn.Open();
                dr=cmd.ExecuteReader();
                dt=DataReaderToTable(dr);
            }
            catch(Exception ex)
            {
                str_error=ex.Message;
            }
            finally
            {
                conn.Close();
            }
            return dt;
         }
        #region 循环SqlDataReader填入Table
        private static DataTable DataReaderToTable(SqlDataReader dr)
        {
            DataTable dt=new DataTable();
            int count=dr.FieldCount;
            int index=1;
            if(count>0)
            {
                for(int i=0;i<count;i++)
                {
                    dt.Columns.Add(dr.GetName(i),dr.GetFieldType(i));
                }
                dt.Columns.Add("id");//编号
                dt.BeginLoadData();
                while(dr.Read())
                {
                    object[] objectRow=new object[count+1];
                    for(int i=0;i<count;i++)
                    {
                   
                        objectRow[i]=dr[dr.GetName(i)];
                    }
                    objectRow[count]=index;//编号
                    dt.LoadDataRow(objectRow,true);
                    index++;
                }
                dt.EndLoadData();
            }
            return dt;

        }
        #endregion
        public static SqlConnection CreateConn()
        {
            //string str_conn="server=.;database=bidding;user id=sa;pwd=jhc;";
            SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]);
            return conn;
        }

posted on 2008-08-26 22:06 阅读(238) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

公告

希望有一天

我能用鼠标双击我的钱包

然后选中一张100元

按住“ctrl+c”

接着不停的“ctrl+v”

嘻嘻~~~笑醒~~~



导航

<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(6)

随笔分类(102)

随笔档案(398)

文章分类

文章档案(10)

有趣网络

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜