WCF 如何使用来自数据库 phpmyadmin 的数据
本文关键字:phpmyadmin 数据 数据库 何使用 WCF | 更新日期: 2023-09-27 18:37:21
很高兴认识大家。我是新来的。
只是想问,我的 WCF 如何使用数据库 phpmyadmin 中的数据?我刚刚尝试了我的 WCF 使用数据库 sqlserver 中的数据,它可以在我的 wpf 应用程序中工作。
但是,如果我的数据库处于联机状态,我找不到如何访问数据的 WCF 的方法。有什么线索吗?
我尝试将数据源更改为数据库的 IP,但它不起作用。这是我的 SqlConnection,
SqlConnection conn = new SqlConnection("Data Source=Alfred-PC;Initial Catalog=alfred;Integrated Security=True");
这是周转基金
public class Jobs : IJobs
{
SqlConnection conn = new SqlConnection("Data Source=Alfred-PC;Initial Catalog=alfred;Integrated Security=True");
SqlDataAdapter da;
DataSet ds;
Data data = new Data();
List<Data> listdata = new List<Data>();
public DataSet Details()
{
conn.Open();
ds = new DataSet();
da = new SqlDataAdapter("Select * from data", conn);
da.Fill(ds);
conn.Close();
return ds;
}
public Data GetDetails(int jobid)
{
conn.Open();
ds = new DataSet();
da = new SqlDataAdapter("Select * from data where id = " + jobid, conn);
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
data.userid = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
data.firstname = ds.Tables[0].Rows[0][1].ToString();
data.lastname = ds.Tables[0].Rows[0][2].ToString();
data.location = ds.Tables[0].Rows[0][3].ToString();
ds.Dispose();
}
conn.Close();
return data;
}
public List<Data> GetAllDetails()
{
conn.Open();
ds = new DataSet();
da = new SqlDataAdapter("Select * from data", conn);
da.Fill(ds);
foreach (DataRow dr in ds.Tables[0].Rows)
{
listdata.Add(
new Data
{
userid = Convert.ToInt32(dr[0]),
firstname = dr[1].ToString(),
lastname = dr[2].ToString(),
location = dr[3].ToString()
}
);
}
conn.Close();
return listdata;
}
}
这是 WPF 文件
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
if (textbox1.Text.Trim().Length != 0)
{
ServiceReference1.JobsClient jc = new ServiceReference1.JobsClient();
var x = jc.GetDetails(Convert.ToInt32(textbox1.Text));
if (x.userid != 0)
{
textbox2.Text = x.userid.ToString();
textbox3.Text = x.firstname;
textbox4.Text = x.lastname;
textbox5.Text = x.location;
}
else
MessageBox.Show("RecordNotFound ... !", "Message", MessageBoxButton.OK, MessageBoxImage.Information);
}
else
MessageBox.Show("EnterID", "Message", MessageBoxButton.OK, MessageBoxImage.Warning);
}
private void button2_Click(object sender, RoutedEventArgs e)
{
ServiceReference1.JobsClient jc = new ServiceReference1.JobsClient();
dataGrid1.ItemsSource = jc.Details().Tables[0].DefaultView;
}
private void button3_Click(object sender, RoutedEventArgs e)
{
ServiceReference1.JobsClient jc = new ServiceReference1.JobsClient();
dataGrid1.ItemsSource = jc.GetAllDetails() ;
}
}
理解正确,您需要一个连接字符串的示例。因此,有关连接字符串格式,请查看此处:http://www.connectionstrings.com/mysql
如果您使用的是标准端口并且没有更改它,则可以Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
示例。在这种情况下,您不会使用集成安全性(您将在连接字符串中指定用户名和密码),因此请检查您是否可以这样做。
然后,您可以使用MySQL连接器(命名空间MySql.Data.MySqlClient
可在此处下载 http://dev.mysql.com/downloads/dotnet.html)并以编程方式连接到MySQL数据库,如此处详细解释 http://www.functionx.com/mysqlnet/csharp/Lesson02.htm
您正在使用集成安全性。 对于 WPF 应用,用于对数据库的访问权限进行身份验证的帐户是您登录时使用的帐户。 但在 WCF 服务中,帐户由承载它的 (IIS) 服务器的设置控制。 您有一些选择:
- 更改为使用用户名和密码连接到数据库
- 更改数据库以接受 WCF 服务尝试连接的帐户(数据库应在错误消息或日志中告诉您)
- 更改服务器设置以使用具有权限的 Windows 帐户