数据库问题
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#