0

请帮我解决以下问题:

我正在使用SQL database server 2008,其中有一个包含列的表格,如附图所示。我想检索 ToolTip 列并在 **Controls:** 之后提取字符串,然后将 type=value 字符串分开并分别在 <code>ListBox</code> 中列出

我想检索 ToolTip 列并在Controls:之后提取字符串:并将 type=value 字符串分开并单独列出ListBox

然后我想遍历每一行获取列表并将该列表与另一组类似列表进行比较,并检查它们是否具有相同的字符串列表。我没有尝试过任何代码,因为我一开始不知道如何开始。任何帮助将不胜感激。谢谢你。

4

3 回答 3

1

如果你有就更好了

Profile_Controls

Profile_Name       Controls_Key     Controls_Value
-----------------------------------------------------
Lamp_Profile1      ON_OFF           ON
Lamp_Profile1      BRIGHTNESS       NONE
Fan_Profile1       ON_OFF           ON
Fan_Profile1       SPEED            NONE
.....

然后你可以选择

Select Controls_Key+'='+Controls_Value AS Settings From Profile_Controls Where Profile_Name = 'Fan_Profile1'

Results
-----------------
Settings
---------------------
ON_OFF=ON
SPEED=ON

这为您提供了更大的灵活性,因为您可以过滤、JOIN、COMPARE 和使用其他内置 SQL 功能

如果您仍然想像拥有它一样维护您的表结构

string[] mysplit = Tool_Tip.Split(s.Split(new string[]{"Controls:"}, StringSplitOptions.RemoveEmptyEntries);

string controls = mysplit[1].Substring(0); //ON_OFF=On;BRIGHTNESS=NONE

string[] eachSettings = controls.Split(';');

//eachSettings[0] = ON_OFF=ON
//eachSettings[1] = BRIGHTNESS=NONE

更新

public System.Data.DataTable GetProfileSettings(string profilename)
{
   string sql = "Select Controls_Key+'='+Controls_Value AS Settings From Profile_Controls Where Profile_Name = '"+profilename+"'";
   //write ADO.Net code here to get settings into DataTable
   //DataTable dt = blah blah blah;

   return dt;
}

在您的页面中

protected void SomeEvent_Handler(object sender, EventArgs e)
{
   myListBox2.DataSource = GetProfileSettings("FanProfile1");
   myListBox2.DataTextField = "Settings";
   myListBox2.DataBind();
}

您可以使用此链接作为将项目添加到列表框的参考如何将 SQL 中的逗号分隔值分别检索到列表框

于 2012-09-08T05:57:17.430 回答
0

String.Split和更多关于SqlConnection和 SqlCommand的阅读

于 2012-09-08T05:23:44.680 回答
0

我们如何触发这样的查询

select tooltip from FooTable where Profile_Type='Foo_Profile_Type' and Profile_Name = 'Foo_Profile_Name'

并得到

"Type = LAMP;Profile = Lamp_Profile1;Controls:ON_OFF = ON;BRIGHTNESS = NONE;"

然后

string str = returnedstring.Split(new string[]{"Controls:"})[2];

会给你

"Controls:ON_OFF = ON"
于 2012-09-08T05:47:45.807 回答