要怎麼讓Maui連接SQL SERVER?
using System;
using System.Collections.ObjectModel;
using System.Data.SqlClient;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
namespace MyApp
{
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// 加入身分驗證的服務
builder.Services.AddApiAuthorization();
await builder.Build().RunAsync();
}
}
public class App : Microsoft.AspNetCore.Components.ComponentBase
{
[Inject]
protected NavigationManager NavigationManager { get; set; }
[Inject]
protected ILogger<App> Logger { get; set; }
[Inject]
protected IAccessTokenProvider AccessTokenProvider { get; set; }
[Inject]
protected AuthenticationStateProvider AuthenticationStateProvider { get; set; }
protected override async Task OnInitializedAsync()
{
// 驗證身分
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User;
if (!user.Identity.IsAuthenticated)
{
// 若使用者尚未登入,則導向到登入頁面
NavigationManager.NavigateTo("authentication/login");
}
else
{
// 若使用者已登入,則導向到 Customers 頁面
NavigationManager.NavigateTo("customers");
}
}
}
public class CustomersModel : Microsoft.AspNetCore.Components.ComponentBase
{
public ObservableCollection<Customer> Customers { get; set; }
protected override async Task OnInitializedAsync()
{
// 連接字串。請注意,您需要替換資料庫伺服器名稱、資料庫名稱和使用者名稱/密碼。
string connectionString = "Server=MyServer;Database=MyDb;User Id=MyUsername;Password=MyPassword;";
Customers = new ObservableCollection<Customer>();
// 使用 using 關鍵字,以確保連接會自動關閉
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 建立連接
connection.Open();
// 建立 SqlCommand 物件,並傳入查詢字串和連接物件
SqlCommand command = new SqlCommand("SELECT * FROM Customers", connection);
// 執行查詢並取得結果
SqlDataReader reader = command.ExecuteReader();
// 使用 while 迴圈,取出每一筆記錄
while (reader.Read())
{
// 建立 Customer 物件,並設定屬性值
Customer customer = new Customer
{
Id = reader.GetInt32(0),
Name = reader.GetString(1),
City = reader.GetString(2)
};
// 將 Customer 物件加入到 Customers 集合中
Customers.Add(customer);
}
}
}
}
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
}
若是要寫手機程式,也可以用b4x寫..參考底下的
https://www.youtube.com/watch?v=sbSjy_2nMvU
https://www.youtube.com/watch?v=1G1dvEoSnA8&t=537s
方案一、新建API專案
應該是要另外寫一支API專案存取DB吧?
然後MAUI再呼叫API去執行動作
方案二、直接連SQL SERVER
沒做過,但有看到別人拍Xamarin的連SQL SERVER示範影片,你可以參考看看是否類似方向...這部分看起來能直接搬到MAUI去使用
看樓主似乎對MAUI的理解不多
但要直接寫可能會有些辛苦
題目本身敘述有些簡短:
很單純的要去連線資料庫其實不難
SqlConnection直接連就好了
但實務上還是會選擇打API之類的方法
API是甚麼 怎麼怎麼架 可能需要先了解一下
MAUI這邊就是UserClient
可以發個例如HttpClient到你的API上取資料
所以需要知道的應該是
1.如何在C#建立 SqlConnection連線
2.若長遠來看 要不要架API? API怎麼架? 怎麼去呼叫API?