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

数据库问题

public string GetRcData(string mc)
        {
            string sql = "select * from shop where 商品名称='mc'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlcon);
            DataSet ds = new DataSet();      
            sda.Fill(ds, "shop");
            return ds.Tables[0];
        }
我想要返回的时候是string

然后我再拆开
string xinxi=GetRcData(textBox1.Text);
line=xinxi.Split(',');
textBox2.Text=line[0];
textBox3.Text=line[1];
textBox4.Text=line[2];


请大哥帮忙了    各位
--------------------编程问答-------------------- 没有看明白,想要啥 --------------------编程问答-------------------- up --------------------编程问答-------------------- return ds.toString();  可以么 --------------------编程问答-------------------- select a + ',' + b + ',' + c + ... as result from shop where 商品名称='mc'

or

return ds.Tables[0] + "," + ds.Tables[1] + "," + ...;

but...为什么要这么做?完全没有必要... --------------------编程问答-------------------- select a + ',' + b + ',' + c + ... as result from shop where 商品名称='mc'

这个可行

不过楼主的想法 有些不正确

建议还是返回DataSet或者IList之类东西 --------------------编程问答-------------------- LZ还是就返回DataSet吧,以后的操作也更简单 --------------------编程问答-------------------- 我觉得返回数据集比较好 --------------------编程问答-------------------- 还是不可以啊   谁有这样的代码呢?  完整的发上来看看 --------------------编程问答-------------------- SqlDataReader reader;
StringBuilder strBuilder=new StringBuilder();
SqlCn.Open();
SqlCommand command = new SqlCommand(Cmd, SqlCn);
reader = command.ExecuteReader(CommandBehavior.CloseConnection);
//返回第一条记录
while(reader.Read())
{
    strBuilder.Append(reader[0].ToString());
    break;
}
return strBuilder.ToString();
//----------------------------------
//返回所有记录的拼接结果
//while(reader.Read())
//{
//    strBuilder.Append(reader[0].ToString());
//}
//return strBuilder.ToString();
//-----------------------------------
//控制返回第几条记录
//int i=0;
//int n=5;
//while(reader.Read())
//{
//    i++;
//    if (i==n)
//    {
//       strBuilder.Append(reader[0].ToString());
//       break;
//    }
//}
//return strBuilder.ToString();


//均未测试 --------------------编程问答-------------------- select a + ',' + b + ',' + c + ... as result from shop where 商品名称='mc'


按照这个 --------------------编程问答-------------------- return ds.Tables[0];返回的是數據集,方法顯示是返回字符串,可以這樣寫嗎?不是很清楚,問問?

public string GetRcData(string mc) --------------------编程问答-------------------- lz最后要得到的信息比较怪异哈
不过你完全可以通过table把里边的行作个循环再列循环,把每个字段的值都取出来连接起来
for(int i=0;i<ds.Tables[0].Rows.count;i++)
{
for(int j=0;j<ds.Tables[0].Colomns.count;j++)
{
然后把字段都取出来,放到string里
}
} --------------------编程问答-------------------- public DataSet GetRcData(string mc)
直接把返回类型改为DataSet
这样比较好
--------------------编程问答-------------------- lisbates27(只爱嘎嘎) ( )  
 
   lz最后要得到的信息比较怪异哈
不过你完全可以通过table把里边的行作个循环再列循环,把每个字段的值都取出来连接起来
for(int i=0;i<ds.Tables[0].Rows.count;i++)
{
for(int j=0;j<ds.Tables[0].Colomns.count;j++)
{
然后把字段都取出来,放到string里
}

 
--------------------编程问答-------------------- public string[] GetRcData(string mc)
        {
            string [] s = new string[3];
            string sql = "select * from shop where 商品名称='mc'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlcon);
            DataSet ds = new DataSet();      
            sda.Fill(ds, "shop");
            s[0] = ds.Table[0].Rows[0].Columns[0].ToString();///保证有数据,没有的话自己判断吧
            s[1] =...;
            s[2] = ...;
            return s;
   
        }
string[] s = GetRcData("mc");
textBox2.Text=s[0];
textBox3.Text=s[1];
textBox4.Text=s[2];
--------------------编程问答-------------------- string [] s = new string[ds.Columns.Count];//这样声明也行
下面也可以用循环给 s 赋值. --------------------编程问答-------------------- 从数据集当中把数据取出来转换为string不就行了吗
--------------------编程问答-------------------- bbbbbb888888  你说的那样还不是不可以啊?   我试了  错误 --------------------编程问答-------------------- 想要什么样的,看着晕 --------------------编程问答-------------------- 如果列是不定的话
System.Data.SqlClient.SqlConnection connection;
            System.Data.SqlClient.SqlDataReader reader;



//省略部分代码

            if (reader.Read())
            {
                System.Text.StringBuilder builder = new StringBuilder();
                for (int i = 0; i < reader.FieldCount; ++i)
                {
                    System.String temp = reader.IsDBNull(i) ? "" : reader.GetString(i);
                    builder.Append(temp + ",");
                }
                return builder.ToString();
            }
            return "";


//调用
//返回值得是value;
value;
if("" == value)
    return;//没有数据?
else
    value.Split(new Systme.Char[]{ ',' }, System.StringSplitOptions.RemoveEmptyEntries); --------------------编程问答-------------------- lz,你的数据库的表结构是什么?? --------------------编程问答-------------------- 都不知道你们在说什么? 我都看不懂,还问什么数据库表结构哦!  我要经过查询,然后把取出来的这条值 附给一个string类型的 --------------------编程问答-------------------- public string GetRcData(string mc)
        {
            string sql = @"select field1+','+field2+','+field3 as mystring
             from shop where 商品名称='mc'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlcon);
            DataSet ds = new DataSet();      
            sda.Fill(ds, "shop");
            return ds.Tables[0].Rows[0][0].ToString();
        }
我想要返回的时候是string

然后我再拆开
string xinxi=GetRcData(textBox1.Text);
line=xinxi.Split(',');
textBox2.Text=line[0];
textBox3.Text=line[1];
textBox4.Text=line[2]; --------------------编程问答-------------------- berlin8600  你说的这样还是不可以啊   我试了,你是不是无聊  来这…… --------------------编程问答-------------------- return ds.Tables[0].DefaultView;返回一个查询结果的视图,比返回DS要好一点,ds数据集占用的内存太多,从查询优化上考虑应该返回查询结果的视图。然后把函数的返回值string改为DataView. --------------------编程问答-------------------- 再说你那返回值好象也有问题的,函数中返回的ds.Tables[0]是一个DataTable对象,而你函数的返回值类型是string...昏,好象是这样的把?我也是新手,共同探讨 --------------------编程问答-------------------- 你是想将表中的字段填到对应的textbox中吧?以下如何?
public DataView GetRcData(string mc)
        {
            string sql = "select * from shop where 商品名称='mc'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlcon);
            DataSet ds = new DataSet();      
            sda.Fill(ds, "shop");
            return ds.Tables[0].DefaultView;
        }

DataView dv=GetRcData(Textbox1.text)
Textbox2.text=dv.Item[0]("价格")
Textbox3.text=dv.Item[0]("供应商")
.............
你自己试试看,我是用VB.NET,不知道C#这样写是否正确!@


--------------------编程问答-------------------- mark! --------------------编程问答-------------------- public string GetRcData(string mc)
        {
            string sql = "select * from shop where 商品名称='mc'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlcon);
            DataSet ds = new DataSet();      
            sda.Fill(ds, "shop");
            return ds.Tables[0];
        }
你这个方法返回的是一个DataTable对象,不是String类型的
你可以这么做:
public DataSet GetRcData(string mc)
        {
            string sql = "select * from shop where 商品名称='mc'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlcon);
            DataSet ds = new DataSet();      
            sda.Fill(ds, "shop");
            return ds
        }

返回一个DATASET类型的ds 这样只要把ds里的表(ds.Tables[0])的内容放到txtBox里就OK了
如下:
   String s1 = (String)ds.Tabales[0].rows[0].["你想要的数据库的某个字段名"]
   txtBox1 = s1;
   别的文本框跟他一样
试试吧

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