可以这样做吗?
var strings = ConfigurationManager.ConnectionStrings;
var names = (from d in strings
select new ConnectionName(d.Name));
Run Code Online (Sandbox Code Playgroud) 我有许多数据库,每个数据库都有一个审计表。其中一个数据库是“通用”数据库,其中包含国家、州等表格。
该公共数据库的表在其他数据库中作为视图进行引用。
目前我的审计表有一个身份列。为了列出审计记录,我使用 UNION 来合并普通数据库中的审计表和公共数据库中的审计表。
然而,审计表中的标识列可能是相同的。
如果我在审计表中添加一个 uniqueidentifier 列并将其用作我的唯一 ID,那么该列在数据库中是否唯一?
我有一个具有自己布局的片段,应该添加片段的活动具有以下布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<fragment
android:name="com.myapp.MyFragment"
android:id="@+id/myfragment"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
tools:layout="@layout/myfragment_layout" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
然后在活动类中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_info);
FragmentManager fm = getFragmentManager();
fragment = fm.findFragmentById(R.id.myfragment);
if (fragment == null) {
fragment = new MyFragment();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.myfragment, fragment, "myfragment");
ft.commit();
}
}
Run Code Online (Sandbox Code Playgroud)
片段的 onCreateView 是:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.myfragment, container, false);
}
Run Code Online (Sandbox Code Playgroud)
但是片段没有显示。不会抛出任何异常。活动保持空白。
我错过了什么?
如何检查文件是否存在于wwwroot. System.IO.File需要一个绝对路径。
是不是需要先把相对路径转换成绝对路径,还是有更简单的方法?
我有一个包含许多片段的活动。在所有片段中,我都获得了 中的视图onViewCreated,如下所示:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
tv1 = (TextView)view.findViewById(R.id.tv1);
tv2 = (TextView)view.findViewById(R.id.tv2);
tv3 = (TextView)view.findViewById(R.id.tv3);
}
Run Code Online (Sandbox Code Playgroud)
我没有在状态中存储 textview 的文本。一个片段扩展ListFragment,我更改适配器的项目并刷新列表视图。
当我回到以前的片段时(我使用popBackStack()是因为我需要使用后退按钮(应用程序在 kiosk 模式下运行),某些片段中的文本丢失,而在其他片段(和列表视图)中所做的更改保留在那里。
我正在replace用来替换框架中的当前片段。
编辑
丢失的值是 TextViews 和 ImageButtons(图像资源)。EditText 视图中的文本不会丢失。
为什么仅在某些片段中会发生这种情况,我该如何解决此数据丢失问题?
我有一个包含2列的表(string&int).int列的当前值是-1.
使用SQLDataReader我正在读取此表中的行:
public class MyObject
{
public string Name;
public long Number;
}
using (SqlDataReader dataReader = command.ExecuteReader())
{
MyObject o = new MyObject()
while (dataReader.Read())
{
o.Name= dataReader.GetString(0);
o.Number = dataReader.GetInt64(1);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我正在InvalidCastException阅读Number专栏文章.我在这里错过了什么?
我需要检查datareader列的数据类型:
Type type = dataTable.Columns[i].DataType;
if (type.Equals(System.Decimal))
{
//...
}
Run Code Online (Sandbox Code Playgroud)
但是,这条线if (type.Equals(System.Decimal))不正确.什么是正确的语法?
假设我有一个简单的方法:
private void MyMethod()
{
try {
myService.Do();
} catch (MyException ex) {}
}
Run Code Online (Sandbox Code Playgroud)
我有一项使用 的服务HttpClient,并且我这样做:
public void Do()
{
var response = client.GetAsync(url).Result; //Alas it's not async till now
}
Run Code Online (Sandbox Code Playgroud)
现在我正在实现DelegatingHandler并覆盖SendAsync:
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
return await base.SendAsync(request, cancellationToken)
.ContinueWith<HttpResponseMessage>(task =>
{
HttpResponseMessage response = task.Result;
if (response.StatusCode == HttpStatusCode.NotFound)
{
throw new MyException();
}
return response;
}).ConfigureAwait(false);
}
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作,直到 aMyException被抛出这里。异常会冒泡到调用者,但是,异常是AggregrateException.
有没有一种方法可以抛出实际的异常本身,这样就不需要对应用程序范围内的代码进行重大更改?
我有一个解决方案,我有许多卸载的项目。当我在本地构建解决方案时,卸载的项目显然没有构建。在配置管理器中,我什至无法为卸载的项目选择配置、平台、构建和部署选项。
现在我已经创建了一个 Azure Pipeline,它也构建了解决方案。但卸载的项目仍在建设中。
如何在我的管道中排除构建项目?