gpt4 book ai didi

由 c# silverlight wcf mysql

转载 作者:行者123 更新时间:2023-11-29 03:12:39 25 4
gpt4 key购买 nike

我有 silverlight 4 应用程序。托管 ASP.NET Web 应用程序。启用 WCF RIA 服务。从服务器端 apach2 php5 Mysql。通过 MySql 连接器、ADO.NET 实体数据模型、域服务类,我可以访问 MySql 数据库。工作正常......(对我来说很慢,但工作)。

表格:

languages
LANG_ID char(10)
LANG_NAME char(40)
LANG_NAME_SHORT char(10)
LANG_IMAGE blob
LANG_PATH char(100)
DEFAULT char(1)
STATUS_ID char(1)

xaml:

    <ComboBox x:Name="Language_Choice" Height="25" Width="110">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding LANG_PATH}" Width="16" Height="16"></Image>
<TextBlock Text="{Binding LANG_NAME_SHORT}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

代码:

        DataDomainContext _context = new DataDomainContext();
EntityQuery<languages> _query = from _l in _context.GetLanguagesQuery()
where _l.STATUS_ID == "Y"
orderby _l.LANG_NAME_SHORT
select _l;
LoadOperation<languages> _loadOp = _context.Load(_query);
Language_Choice.ItemsSource = _loadOp.Entities;

问题:我要将结果查询放入列表中:

public class LangChoice
{
public string LangID { get; set; }
public string LangName { get; set; }
public byte LangImg { get; set; }
public string LangPath { get; set; }
public string LangDef { get; set; }
} List<LangChoice> LangList = new List<LangChoice>();

有什么方法可以将结果放入列表并保存列表项索引,其中 languages.DEFAULT == "Y"。没有列表,我不知道在 xaml 或代码中定义了 Language_Choice.SelectedIndex=0;(error=out of range)。

我是新的“开发者”。 我是不是写了一个通用代码 SELECT like: "SELECT fild1, fild2 FROM table WHERE field_900="HELP"..."我不会从表中得到所有字段,只定义。环境(c# Silverlight、Apach、PHP、带有 WCF RIA 服务的 MySql)

转发感谢

最佳答案

我找到了一种“回答”的方法......

添加到 ASP.NET Web 应用程序项目:新的“支持 Silverlight 的 WCF 服务”。写入以下代码:

    [OperationContract]
public List<Languages> LanguageList(string query)
{
string nwConn = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
var langList = new List<Languages>();
using (MySqlConnection conn = new MySqlConnection(nwConn))
{
conn.Open();
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (dr != null)
while (dr.Read())
{
var lang = new Languages
{
LangID = dr.GetString(0),
LangName = " " + dr.GetString(1),
LangPath = dr.GetString(2),
LangDef = dr.GetString(3)
};
langList.Add(lang);
}
return langList;
}
}
}

[DataContract]
public class Languages
{
[DataMember]
public string LangID;
[DataMember]
public string LangName;
[DataMember]
public string LangPath;
[DataMember]
public string LangDef;
}

在 web.config 中创建连接:
<connectionStrings> <add name="MyConnection" providerName="MySql.Data.MySqlClient"
connectionString="server=localhost;User Id=root;password=***;database=****;Persist Security Info=True"/>
</connectionStrings>

在 Silverlight 客户端项目中:添加“服务引用”。

现在代码有些像这样:

        string query = @"SELECT `LANG_ID`, `LANG_NAME_SHORT`, `LANG_PATH`, 
`DEFAULT` FROM `languages` WHERE `STATUS_ID` = 'Y' ORDER BY `LANG_NAME_SHORT`";
DataToListServiceClient proxy = new DataToListServiceClient();
proxy.LanguageListCompleted += new EventHandler<LanguageListCompletedEventArgs>(proxy_LanguageListCompleted);
proxy.LanguageListAsync(query);



void proxy_LanguageListCompleted(object sender, LanguageListCompletedEventArgs e)
{
System.Collections.ObjectModel.ObservableCollection<Languages> _list = e.Result;
Language_Choice.ItemsSource = _list;
int i = 0; for (i = 0; i < _list.Count; i++) { if (_list[i].LangDef == "Y") break; }
Language_Choice.SelectedIndex = i;
}

更改 XAML:

Source="{Binding LangPath}"  &  Text="{Binding LangName}"  

关于由 c# silverlight wcf mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com