如何把sql语句查询到的值赋值给变量?
例如语句为“select字段Afrom表Bwhereyears=2000andmonths=2”这样在数据库里查到的是这个字段A这个列的一个值,我想把这个值现在赋值给一个...
例如语句为“select 字段A from 表B where years=2000 and months=2”
这样在数据库里查到的是这个字段A这个列的一个值,我想把这个值现在赋值给一个int变量,请问如何实现?是不是一定要用什么存储过程?我对存储过程不是很熟悉?希望大家能给的详细一点的解答,谢谢!
sqlcmd.ExecuteScalar() 这个是返回结果集中的第1行第1列,那如果查询出的结果是多行的话呢?又该怎么写? 展开
这样在数据库里查到的是这个字段A这个列的一个值,我想把这个值现在赋值给一个int变量,请问如何实现?是不是一定要用什么存储过程?我对存储过程不是很熟悉?希望大家能给的详细一点的解答,谢谢!
sqlcmd.ExecuteScalar() 这个是返回结果集中的第1行第1列,那如果查询出的结果是多行的话呢?又该怎么写? 展开
6个回答
展开全部
//多行
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=.;database=你的数据库的名字;uid=sa;pwd=sa的密码;");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.Connection = conn;
cmd.CommandText="select 字段A from 表B where years=2000 and months=2";
conn.Open();
System.Data.SqlDataAdapter sda=new System.Data.SqlDataAdapter(cmd);
DataSet ds=new DataSet();
sda.Fill(ds,"dtResult");
conn.Close();
//结果在ds的dtResult中。
foreach(DataRow dr in ds.Tables["dtResult"])
{
Response.Write(dr["字段A"].ToString()+"<br>");
}
-------------------------------------------------------------
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=.;database=你的数据库的名字;uid=sa;pwd=sa的密码;");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.Connection = conn;
cmd.CommandText="select 字段A from 表B where years=2000 and months=2";
conn.Open();
int i=Convert.ToInt32(cmd.ExecuteScalar().ToString());
conn.Close();
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=.;database=你的数据库的名字;uid=sa;pwd=sa的密码;");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.Connection = conn;
cmd.CommandText="select 字段A from 表B where years=2000 and months=2";
conn.Open();
System.Data.SqlDataAdapter sda=new System.Data.SqlDataAdapter(cmd);
DataSet ds=new DataSet();
sda.Fill(ds,"dtResult");
conn.Close();
//结果在ds的dtResult中。
foreach(DataRow dr in ds.Tables["dtResult"])
{
Response.Write(dr["字段A"].ToString()+"<br>");
}
-------------------------------------------------------------
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=.;database=你的数据库的名字;uid=sa;pwd=sa的密码;");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.Connection = conn;
cmd.CommandText="select 字段A from 表B where years=2000 and months=2";
conn.Open();
int i=Convert.ToInt32(cmd.ExecuteScalar().ToString());
conn.Close();
展开全部
楼上的例子复杂了,不需要那样去实现,可以简化如下:
string dbStr = "data source=127.0.0.1;uid=sa;pwd=fhploverrz;database=BLOG";
int result;
SqlConnection sqlcon = new SqlConnection(dbStr);
SqlCommand sqlcmd = new SqlCommand(sql, sqlcon);
sqlcon.Open();
result=int.Parse(sqlcmd.ExecuteScalar().ToString());
sqlcon.Close();
result就是结果。至于数据库异常,可以在 sqlcon.Open() 这句上加个 try...catch
string dbStr = "data source=127.0.0.1;uid=sa;pwd=fhploverrz;database=BLOG";
int result;
SqlConnection sqlcon = new SqlConnection(dbStr);
SqlCommand sqlcmd = new SqlCommand(sql, sqlcon);
sqlcon.Open();
result=int.Parse(sqlcmd.ExecuteScalar().ToString());
sqlcon.Close();
result就是结果。至于数据库异常,可以在 sqlcon.Open() 这句上加个 try...catch
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也不说了,楼上的几位已经回答全了```
不过我是先放在数据集中,然后再从数据集中取出数据,如果你的条件查询出多条数据的话,他们说的就不对了,放入数据集中你想取哪个取哪一个:ds.table[表名].rows[第几行][第几列](例如:int ii = Convert.ToInt32(ds.table[0].rows[0][1])
不过我是先放在数据集中,然后再从数据集中取出数据,如果你的条件查询出多条数据的话,他们说的就不对了,放入数据集中你想取哪个取哪一个:ds.table[表名].rows[第几行][第几列](例如:int ii = Convert.ToInt32(ds.table[0].rows[0][1])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是int型的值,可以
int val = (int)sqlcmd.ExecuteScalar();
如果不是,
object obj = sqlcmd.ExecuteScalar();
如果是多行结果可以使用DataReader
DataReader reader = sqlcmd.ExecuteReader();
while ( reader.Read() )
{
// 每行的数据处理代码...
// 如要取字段一的值
object obj = reader[0];
// 如果知道字段名,如"name"
string name = (string)reader["name"];
//...
}
reader.Close();
int val = (int)sqlcmd.ExecuteScalar();
如果不是,
object obj = sqlcmd.ExecuteScalar();
如果是多行结果可以使用DataReader
DataReader reader = sqlcmd.ExecuteReader();
while ( reader.Read() )
{
// 每行的数据处理代码...
// 如要取字段一的值
object obj = reader[0];
// 如果知道字段名,如"name"
string name = (string)reader["name"];
//...
}
reader.Close();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题是 你要把它存在哪里 是后台里面
public static string dbStr = "data source=127.0.0.1;uid=sa;pwd=fhploverrz;database=BLOG";
public static DataSet getDataSet(string sql,Page curPage)
{
DataSet ds = null;
try
{
SqlConnection sqlcon = new SqlConnection(dbStr);
SqlCommand sqlcmd = new SqlCommand(sql, sqlcon);
SqlDataAdapter sqldad = new SqlDataAdapter(sqlcmd);
sqlcon.Open();
ds = new DataSet();
sqldad.Fill(ds);
sqlcon.Close();
}
catch(Exception e)
{
// PublicJS.clsAlert(curPage,"数据库连接错误!");//
}
return ds;
}
ds.table[0].rows[0][0]就是你刚才想要得到的值
老大这个是最基础的东西啊
楼下的说的很好,我这个是一个封装好的东西。所以我就直接复制过来了。因为有时候返回不可能只有一条数据或者只返回一种类型
public static string dbStr = "data source=127.0.0.1;uid=sa;pwd=fhploverrz;database=BLOG";
public static DataSet getDataSet(string sql,Page curPage)
{
DataSet ds = null;
try
{
SqlConnection sqlcon = new SqlConnection(dbStr);
SqlCommand sqlcmd = new SqlCommand(sql, sqlcon);
SqlDataAdapter sqldad = new SqlDataAdapter(sqlcmd);
sqlcon.Open();
ds = new DataSet();
sqldad.Fill(ds);
sqlcon.Close();
}
catch(Exception e)
{
// PublicJS.clsAlert(curPage,"数据库连接错误!");//
}
return ds;
}
ds.table[0].rows[0][0]就是你刚才想要得到的值
老大这个是最基础的东西啊
楼下的说的很好,我这个是一个封装好的东西。所以我就直接复制过来了。因为有时候返回不可能只有一条数据或者只返回一种类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询