C#个人通信录,里面有个登陆的if (OpertDB.ExecuteReader(sql))这一句不知道怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#个人通信录,里面有个登陆的if (OpertDB.ExecuteReader(sql))这一句不知道怎么解决相关的知识,希望对你有一定的参考价值。

是不是要新建一个OpertDB类,在里面构造一个ExecuteReader(sql)函数。word来源在http://wenku.baidu.com/view/e918ca4569eae009581bec12.html?from=related&hasrec=1;

那个好解决,,,
我有数据库类库,下面是代码

public static class SqlHerPer


private static string constr = ConfigurationManager.ConnectionStrings["Sqlconn"].ConnectionString;
/// <summary>
/// 执行数据增删改操作
/// </summary>
/// <param name="sql">Sql语句</param>
/// <param name="param">参数</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] param)

using (SqlConnection conn = new SqlConnection(constr))

conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))

cmd.Parameters.AddRange(param);
return cmd.ExecuteNonQuery();



/// <summary>
/// 执行数据查询操作
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="param">参数</param>
/// <returns>SqlDataReader一条数据</returns>
public static SqlDataReader ExecuteDataReader(string sql, params SqlParameter[] param)

SqlConnection conn = new SqlConnection(constr);
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))

cmd.Parameters.AddRange(param);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);


/// <summary>
/// 返回查询结果第一行和第一列。
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="param">参数</param>
/// <returns>object</returns>
public static object ExecuteScalar(string sql, params SqlParameter[] param)

using (SqlConnection conn = new SqlConnection(constr))

conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))

cmd.Parameters.AddRange(param);
return cmd.ExecuteScalar();



/// <summary>
/// 返回一个数据集的table表
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public static DataTable ExecuteTable(string sql, params SqlParameter[] param)

DataTable table = new DataTable();
using (SqlConnection conn = new SqlConnection(constr))

conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))

cmd.Parameters.AddRange(param);
SqlDataAdapter adapet = new SqlDataAdapter(cmd);
adapet.Fill(table);
return table;



//下面是储存过程的执行的类
/// <summary>
/// 执行存储过程数据增删改操作
/// </summary>
/// <param name="sql">Sql语句</param>
/// <param name="param">参数</param>
/// <returns>受影响的行数</returns>
public static int ProcNonQuery(string sql, params SqlParameter[] param)

using (SqlConnection conn = new SqlConnection(constr))

conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))

cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(param);
return cmd.ExecuteNonQuery();



/// <summary>
/// 执行存储过程数据查询操作
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="param">参数</param>
/// <returns>SqlDataReader一条数据</returns>
public static SqlDataReader ProcDataReader(string sql, params SqlParameter[] param)

SqlConnection conn = new SqlConnection(constr);
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))

cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(param);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);


/// <summary>
/// 返回存储过程查询结果第一行和第一列。
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="param">参数</param>
/// <returns>object</returns>
public static object ProcScalar(string sql, params SqlParameter[] param)

using (SqlConnection conn = new SqlConnection(constr))

conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))

cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(param);
return cmd.ExecuteScalar();



/// <summary>
/// 返回存储过程一个数据集的table表
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public static DataTable ProcTable(string sql, params SqlParameter[] param)

DataTable table = new DataTable();
using (SqlConnection conn = new SqlConnection(constr))

conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))

cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(param);
SqlDataAdapter adapet = new SqlDataAdapter(cmd);
adapet.Fill(table);
return table;





参考技术A 可以看出OpertDB.ExecuteReader(sql) 这是一个通用的数据库操作类opertDB的一个通用方法ExecuteReader, sql就是一个完整的sql语句, if 需要一个返回值,true、false,那么OpertDB.ExecuteReader(sql)这个方法要有返回值true,false,根据题意,这个应该是比对登录用户密码的,sql应该是这样的“select count(*) from user where user=‘***’ and passwd=‘***’",执行结果如果=1 则返回treu ,0 返回false
你自己写这个类和方法吧,文库没给出来吗,你用sqlhelper 是微软的通用数据库操作类,也可以替换,

C#比较大小

四个文本框,前三个可输入double类型数据,在第四个文本框中显示最大的数字和最小数字的差的,有个按钮控制.
三个文本框算一组,每个里面输入个double型数据,求出最大值和最小值的差,有三组,意思就是9个文本框,总共要输入9个数据,
每组最大值减最小值的差之和除以3,就要这个数字,找个文本框显示,不会再变了

参考技术A 我已经把问题解决到这了 如果你再不会的话 你学这个也没意思了
private void button1_Click(object sender, EventArgs e)//点击按钮事件

double[] num=new double[3];
double a = Convert.ToDouble(textBox1.Text);
num[0]=a;
double b = Convert.ToDouble(textBox2.Text);
num[1]=b;
double c = Convert.ToDouble(textBox3.Text);
num[2]=c;
double max=num[0],min=num[0];
for(int i=0;i<3;i++)

if(num[i]>max)
max=num[i];
if(num[i]<min)
min=num[i];

double sum=max-min;
textBox4.Text = sum.ToString();
本回答被提问者采纳
参考技术B 楼上的方法是对的,但是多定义了变量,浪费内存中的指针地址。。

以上是关于C#个人通信录,里面有个登陆的if (OpertDB.ExecuteReader(sql))这一句不知道怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

我用C#创建的是windows窗体应用项目,做的是登陆页面,里面可以使用session吗

紧急!如何使自己的php网站与discuz同步登陆?

为啥我用谷歌账号登陆play商店他说与google服务器通信出现问题啊?

原创如何编写c#用户登陆后用户名在前台显示

sharepoint 搭建过程中在域网里面登陆的时候有问题

C#如何将窗口A中对应的datagridview表格选中某行,然后点击确认按钮,将该行数据录