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.android Activity动画切换效果实现
如何在 Xamarin (Visual Studio) 中构建 XAP 文件
Visual Studio 2017 上的 Xamarin 本机 Windows 应用程序开发
C# Xamarin IOS:相当于 C# IOS Xamarin 中的 SystemClock.ElapsedRealtime()