gpt4 book ai didi

c# - 在代码中使用 System.Data.OleDb 命名空间时找不到 OleDbConnection

转载 作者:行者123 更新时间:2023-12-04 20:28:38 24 4
gpt4 key购买 nike

我已经用相同的问题阅读了另一个问题,但没有 OldeDb命名空间。但我还是有问题

我正在创建一个 UWP 应用,我想将数据从 Excel 文件上传到 DataGridView。

所以这是我的代码

这是我的引用代码

using System.Collections.Generic;
using Windows.UI.Xaml.Controls;
using System.Data;
using Microsoft.Toolkit.Uwp.UI.Controls;
using System;
using System.IO;
using System.Data.OleDb

那么这是我上传我的excel文件的代码
String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fullDirectory + ";Extended Properties='Excel 12.0 XML;HDR=YES;';";

OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + "2018" + "$]", con);

这是我的错误代码

Error CS0246 The type or namespace name 'OleDbCommand' could not be found (are you missing a using directive or an assembly reference?)



任何想法为什么会发生这种情况?谢谢

完整代码
using System.Collections.Generic;
using Windows.UI.Xaml.Controls;
using System.Data;
using Microsoft.Toolkit.Uwp.UI.Controls;
using System;
using System.IO;
using System.Data.OleDb;

namespace App
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}

private void SaveButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{

}

private void CancelButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{

}

private void AppBarButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
if (this.Frame.CanGoBack)
{
this.Frame.GoBack();
}
}

private async void BtnOpenAttendanceFileDialog_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.List;
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
picker.FileTypeFilter.Clear();
picker.FileTypeFilter.Add(".xls");
picker.FileTypeFilter.Add(".xlsx");
picker.FileTypeFilter.Add(".dat");
picker.FileTypeFilter.Add(".csv");


Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
this.txtFileLocation.Text = file.Path;
}
else
{

}
}

private void BtnLoadFile_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
string fileDirectory = Path.GetDirectoryName(txtFileLocation.Text.Trim());
string fileName = Path.GetDirectoryName(txtFileLocation.Text.Trim());
string fullDirectory = txtFileLocation.Text.Trim();

String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fullDirectory + ";Extended Properties='Excel 12.0 XML;HDR=YES;';";

OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + "2018" + "$]", con);


}
}
}

最佳答案

经过一番挖掘(可以在评论中找到),我发现您只能在 UWP 应用程序中使用一小部分 .NET。

创建一个简单的控制台应用程序将验证您的 Visual Studio 安装没有问题。 Eg :

namespace App
{
static void Main(string[] args)
{
using(var conn = new System.Data.OleDb.OleDbConnection{connString = "..info.."})
{
conn.Open();
Console.WriteLine("DS:{0} DB: {1}",conn.DataSource,conn.Database);
}
}
}

只是UWP不支持 OleDbConnection .
更多详情请查看 here关于你可以使用什么。另外,看看: API's of UWP验证您使用的版本是否正确。

此外,此错误可能是由于对 System.Data 有多个引用变体引起的。对于其他偶然发现这个答案的人。

关于c# - 在代码中使用 System.Data.OleDb 命名空间时找不到 OleDbConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54194723/

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