是否有一些 SQL 要么返回一个表名列表,要么(切入正题)返回一个布尔值以确定具有某种模式的表名是否存在?
具体来说,我需要知道数据库中是否有一个名为 、 、 、 、 、 、 等的表INV[Bla](INVclay这INVcherri部分INVkelvin是INVmorgan我INVgrandFunk正在INVgobbledygook寻找INV2468WhoDoWeAppreciate的INV;表名的其余部分几乎可以是任何内容)。
IOW,SQL语句中可以使用“通配符”吗,例如:
SELECT * tables
FROM database
WHERE tableName = 'INV*'
Run Code Online (Sandbox Code Playgroud)
或者这将如何实现?
我已经做了一些谷歌搜索,试图找出如何将.MDF文件转换为.SDF. 除了一篇名为“SQL Server 到 SQL Server Compact Edition 数据库复制实用程序”的旧文章之外,似乎没有太多内容。由于它太旧了,我怀疑它是否适用于较新版本的 SQL Server 数据库。现在有没有更成熟和官方的方法来实现这一目标?理想情况下,我需要一些可以迁移数据和表结构的东西。
我无法弄清楚如何检查表上的记录是否按特定顺序排列。简化的表设计本质上是这样的:
+------------+----------------+--------+
| ID (GUID) | StartDate | NumCol |
+------------+----------------+--------+
| CEE8C17... | 8/17/2019 3:11 | 22 |
| BB22001... | 8/17/2019 3:33 | 21 |
| 4D40B12... | 8/17/2019 3:47 | 21 |
| 3655125... | 8/17/2019 4:06 | 20 |
| 3456CD1... | 8/17/2019 4:22 | 20 |
| 38BAF92... | 8/17/2019 4:40 | 19 |
| E60CBE8... | 8/17/2019 5:09 | 19 |
| 5F2756B... | 8/17/2019 5:24 | 18 |
+------------+----------------+--------+
Run Code Online (Sandbox Code Playgroud)
该ID列是非连续的 GUID。 …
我创建了一个使用 x64 作为 TargetFramework 的 .NET Framework 4.8 C# 类库项目。
我已将 NuGet 包Microsoft.SqlServer.Compact添加到项目中。当我构建项目时,只有位于 \lib\net40 文件夹中的 System.Data.SqlServerCe.dll 文件被复制到输出文件夹中。
不会复制 NuGet 包的 NativeBinaries\amd64\ 目录中的文件。
但我需要它们位于 OutputPath\amd64 目录中。我需要进行哪些设置才能复制这些文件?
编辑
这是我的 csproj 文件的内容:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{409AD54E-75FD-419F-B5D7-D2368105B4A8}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>NuGetSQLTestClassLibraryNetFramework</RootNamespace>
<AssemblyName>NuGetSQLTestClassLibraryNetFramework</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" …Run Code Online (Sandbox Code Playgroud) 将数据输入到数据库的几列中时,我遇到了一些麻烦,所有nvarchar类型.我越来越:
从一种数据类型转换为另一种数据时,数据被截断.功能名称(如果已知)
DBConn.Open();
cmd = new SqlCeCommand("INSERT INTO [Employee Table] VALUES ('"+ social + "','" +
first + "','" + last + "','" + mid + "','" + address + "','" + phone + "',"
+ "'Employee'" + ",'" + city + "','" + state + "','" + zip + "','" + email + "','" + userName + "')", DBConn);
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
有关如何避免截断/转换错误的任何建议?
这是我的问题:我的数据库中有3个表
电影(电影列表)
类型(所有类型的表格)
RelatedGenres(那些与特定电影相似并且指向特定类型的类型,因为电影可以有超过1种类型)
关系如下:
Movies.ID - > RelatedGenres.MovieID - > Genres.ID
我有一个模型与assosiations(导航属性). 我得到了什么:
class Movie
{
public int ID { get; set; }
public string OriginalTitle { get; set; }
public ObjectCollection<RelatedGenre> RelatedGenres { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
哪里
class RelatedGenre
{
public int ID { get; set; }
public int MovieID { get; set; }
public ObjectCollection<Genre> Genres { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想要的是:
class Movie
{
public int ID …Run Code Online (Sandbox Code Playgroud) 在我的解决方案中,我有一个本地数据库和一个带有GetQuery函数的数据库连接类.此函数工作正常,但由于某种原因,它不会处理查询,如下所示.当我运行一个查询SELECT * FROM logs时,一切正常,但当我尝试使用此查询时
SELECT klantnr AS 'Klantnummer',
klantnaam AS 'Klantnaam',
vraag AS 'Vraag/probleem',
informatie AS 'Informatie/uitvoering',
antwoord AS 'Antwoord/oplossing',
datum AS 'Datum',
tijd AS 'Tijd'
FROM logs
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息: There was an error parsing the query. [ Token line number = 1,Token line offset = 21,Token in error = Klantnummer ]
在尝试追踪仅在某些情况下发生的空引用异常的原因时,我遇到了以下代码:
SqlCeDataReader IdValsReader = IdValsCMD.ExecuteReader();
if ((IdValsReader.Read()) && (!IdValsReader.IsDBNull(0)))
{
return string.Format("{0};{1};{2};{3};{4};{5};{6};{7};",
IdValsReader.GetValue(DESCRIPTION_INDEX),
. . .
}
IdValsReader.Close();
Run Code Online (Sandbox Code Playgroud)
...并且想知道我是否应该在IdValsReader.Close()之后添加这一行:
IdValsReader.Dispose();
Run Code Online (Sandbox Code Playgroud)
我这样做了,但似乎没有任何区别; 我应该把它留下来还是把它剥掉?
我怎样才能将数据输入"John's shoe"到SQL Server CE表(版本3.5)中,因为插入语句等等不接受在语句中使用'撇号,如下面的语句:
INSERT INTO ShowsDB(Item) VALUES('+ "John's shoes" + "')
Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server Compact数据库,我正在尝试使用它来插入记录cmd.ExecuteNonQuery().这种方法在另一个项目中运行得非常好,但它现在不起作用.
private void AddNewProfile() {
try {
using(SqlCeConnection conn = new SqlCeConnection(Properties.Settings.Default.dbConnectionString)) {
using(SqlCeCommand cmd = new SqlCeCommand()) {
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO Profiles (ProfileName, ProfilePath, ProfileDescription) VALUES ('@name', '@path', '@desc');";
cmd.Parameters.AddWithValue("@name", SqlDbType.Text).Value = "New Profile";
cmd.Parameters.AddWithValue("@path", SqlDbType.Text).Value = "C:\\";
cmd.Parameters.AddWithValue("@desc", SqlDbType.Text).Value = "A blank profile.";
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
catch(Exception ex) {
MessageBox.Show(ex.Message, "Error");
}
}
Run Code Online (Sandbox Code Playgroud)
问题来自于参数 - 我几乎从我的其他项目中复制了代码,但它无法正常工作.而不是执行此:
INSERT INTO Profiles (ProfileName, ProfilePath, ProfileDescription)
VALUES ('New Profile', 'C:\\', 'A …Run Code Online (Sandbox Code Playgroud) sql-server-ce ×10
c# ×6
sql ×3
sql-server ×3
windows-ce ×2
.net-1.0 ×1
mdf ×1
nuget ×1
relationship ×1
sdf ×1