C# + SQL + Xamarin Android:

Posted

技术标签:

【中文标题】C# + SQL + Xamarin Android:【英文标题】:C# + SQL + Xamarin Android: 【发布时间】:2018-04-25 13:59:42 【问题描述】:

我已经被这个问题难住了一段时间,虽然我在网上搜索了我的问题,但我运气不佳。因此,在我用 Xamarin 制作的 android 程序中,在按钮单击事件中,我尝试将数据发送到服务器,但是,我会收到此错误:

System.InvalidOperationException:更新要求命令克隆具有连接对象。命令克隆的 Connection 属性尚未初始化。

此时我正在使用此代码:

using (SqlConnection connection = new SqlConnection(cs))

    connection.Open();
    SqlDataAdapter dataAdapter = new SqlDataAdapter($"Select * from Room", connection);
    SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

    Spinner roomsSPNR = FindViewById<Spinner>(Resource.Id.rooms);
    int room = Convert.ToInt32(roomsSPNR.SelectedItem.ToString());
    DataRow[] selected = rooms.Tables[0].Select($"RoomNo = room");
    selected[0][3] = Id;

    dataAdapter.Update(rooms);  //Line giving the error

changeColors(Id);

我对此感到困惑,我无法弄清楚它为什么会这样做。任何人都可以帮忙吗? 我试过了:

    手动设置 update.connection 制作 SQL 命令并将命令生成器的命令放入其中(还有另一个错误) 将 DataAdapter 的更新命令设置为命令生成器的方法 在DataAdapter的初始化中,我把连接改成了连接字符串 许多其他可能并不重要

编辑:在代码的早期,程序能够从服务器读取并将其放入 'rooms.另一方面,我不熟悉制作网络服务;这是我需要做的让它更新数据库吗?

【问题讨论】:

代码在您的设备上运行,SQL 服务器没有。您应该使用 REST Web api 之类的东西向服务器发出请求,而服务器又应该处理 SQL。 或者,如果您只需要本地数据库,请使用 SQLite。 @FraukeNonnenmacher 这是一个实际的服务器,是使用网络服务使其工作的唯一方法吗? 是的,我会推荐一个标准的 WEB API。这里有一个教程:docs.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/… 我不久前就尝试过这样做。我不想做一个网络服务,我只想直接从我的应用程序访问数据库。这不可能。看看 xamarinfourms 上的这个帖子forums.xamarin.com/discussion/44392/… 【参考方案1】:

您不能直接连接 xamarin 中的数据库。您需要首先创建一个 Web 服务并使用该 Web 服务从数据库中插入或获取数据。

如果您需要,我会在网络服务方面为您提供帮助。

【讨论】:

以上是关于C# + SQL + Xamarin Android:的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin表示WebView性能

Xamarin.android Activity动画切换效果实现

如何在 Xamarin (Visual Studio) 中构建 XAP 文件

Visual Studio 2017 上的 Xamarin 本机 Windows 应用程序开发

C# Xamarin IOS:相当于 C# IOS Xamarin 中的 SystemClock.ElapsedRealtime()

C#使用Xamarin开发Android应用程序 -- 系列文章