Tag: 数据库

单击数据网格行并在文本框中显示其内容

我正在尝试使用数据网格的内容填充文本框。 我正在使用名为XYZCompany.accbd的数据源。 我用数据库的内容填充dgv,在这种情况下包含供应商ID(自动编号字段),供应商名称,供应商地址,电话号码和合同名称。 首先,我用这些字段填充dgv。 然后我接下来要做的下一步是,当我点击dgv中的一行时,它应该显示文本框中行的数据。 问题是当我点击dgv行时,文本框中没有显示任何内容,我没有收到任何错误。 我将我的连接作为参数传递给新表单。 但无论如何我会指定它。 这是我通过的声明: OleDbConnection dbConn; OleDbCommand dbCmd; DataSet ds = new DataSet(); OleDbDataAdapter dbAdapter; private void ViewAllSuppliers_Load(object sender, EventArgs e) { dbConn = new OleDbConnection(“Provider=Microsoft.ACE.OLEDB.12.0; Data Source=XYZCompany.accdb”); dbCmd = new OleDbCommand(“SELECT * FROM Supplier ORDER BY [Supplier ID]”, dbConn); dbAdapter = new OleDbDataAdapter(dbCmd); dbAdapter.Fill(ds, “Suppliers”); } private void btnViewSuppliers_Click(object […]

基于本地文件的SQL Server

我为一个使用SQL Server作为其数据库的客户端编写了一个相当大的C#Winforms应用程序。 这最初是为内部使用而设计和开发的。 他们已经决定将他们的缩减版本许可给他们的客户,以及在内部使用完整版本。 虽然缩减版本将存储的一些数据将通过调用Web服务发送到我们的服务器,但是需要将大多数数据存储在本地。 我的大部分数据库经验都使用了SQL Server的安装。 但是,理想情况下,在这种情况下,它应该将数据存储在基于本地文件的数据库中(无需安装和配置数据库服务器)。 他们的客户不太可能具有技术头脑,他们只需要一个安装该软件的setup.exe,它就可以工作了。 我的大多数.NET代码都使用Linq-to-Sql与数据库进行通信。 在这种情况下,本地数据库的最佳选择是什么,这应该允许我仍然使用现有的Linq代码?

EF每次引用一个时都会创建一个新的UserProfile?

我的问题是,以下代码不仅创建了ProtectedPassword(应该如此),而且还创建了插入其中的所有者,即使该所有者已存在。 UserProfile user = PublicUtility.GetAccount(User.Identity.Name); //gets an existing UserProfile ProtectedPassword pw = new ProtectedPassword(model.Name, user, model.Password); ProtectedPassword.Create(pw); 因此,在创建新的ProtectedPassword之后,我最终得到了一个新的UserProfile(具有与前一个相同的值,除了新ID)。 我已经在这个问题上乱了几个小时了,如果有人可以帮助我,我会很感激! 顺便说一句,我使用ASP.NET MVC4和EF Code First。 首先,实体:ProtectedPassword: [Table(“ProtectedPassword”)] public class ProtectedPassword : ProtectedProperty { [Required] [MinLength(3)] [MaxLength(20)] public string Password { get; set; } private ProtectedPassword() { } public ProtectedPassword(string name, UserProfile owner, string password) { Name = […]

NHibernate firebird错误 – 索引超出范围

使用NHibernate和Firebird数据库时,c#中可能导致以下错误? 2015-08-17 08:27:04,962 [21] [(null)] ERROR Smartsign.Server.Core.Server Unhandled exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.ThrowHelper.ThrowArgumentOutOfRangeException() at System.Collections.Generic.List`1.get_Item(Int32 index) at FirebirdSql.Data.FirebirdClient.FbParameterCollection.get_Item(Int32 index) in c:\Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbParameterCollection.cs:line 58 at FirebirdSql.Data.FirebirdClient.FbParameterCollection.GetParameter(Int32 index) in c:\Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbParameterCollection.cs:line 315 at System.Data.Common.DbParameterCollection.System.Collections.IList.get_Item(Int32 index) at NHibernate.Type.Int32Type.Set(IDbCommand rs, Object value, Int32 […]

从不同的表中获取数据库中的数据

我正在创建这个移动门户/应用程序使用(ASP + WML)我需要生成一个学生在某一学期在某一年中所学的课程列表。 我有以下表格: 我从上一页有以下参数: string StudentId = Request.Params[“StudentId”]; string Year = Request.Params[“Year”]; string Semester = Request.Params[“Semester”]; ( Year )的值是“2011”或“2012”。 ( Semester )的价值是“第一”或“第二”或“夏季”。 ( StudentId )的值是在Students表中从id之前提取的数字。 作为表内数据的示例。 我被困在这里 string connectionString = @”Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|\Uni.MDF;” + “Integrated Security=True;User Instance=True”; string queryString =” ??????????????????????????? ” ; 我想获得一个页面来显示用户注册的课程(在给定的学期中)。 该信息稍后将通过URL传递到新页面,其中将显示信息。 就像是: First Semester 2010 Student : Arin Rizk Course Name […]

如何从asp.net中的数据库填充DropDownList?

如何从asp.net中的数据库填充DropDownList? 当我从DropDownList中选择值时如何捕获此事件? Conn.Open(); SQL = “SELECT distinct city FROM MEN”; dsView = new DataSet(); adp = new SqlDataAdapter(SQL, Conn); adp.Fill(dsView, “MEN”); adp.Dispose(); DropDownList1. ?????? (what do to ?) 提前致谢

使用SqlReader从存储过程中获取多个表

我有一个用户定义的类型,它是SqlServer数据库中的数据表。 我一直在使用Database,DbCommand等来调用存储过程并获取数据集。 数据集很方便,因为它们可以包含多个表。 现在我想传入一个Datatable,所以我尝试了: string _strComText = “stored_procedure_name_changed_to_protect_the_innocent”; _objCom = _objDB.GetSqlStringCommand(_strComText); _objDB.AddInParameter(_objCom, “@BASE_ITEMIDS”, DbType.Object, dtItemIds); _objCom.CommandType = CommandType.StoredProcedure; dataset = _objDB.ExecuteDataSet(_objCom); 但我得到一个例外,“@ BASE_ITEMIDS”不是正确的类型:“传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确。参数1(\”@ BASE_ITEMIDS \“):数据类型0x62 (sql_variant)类型特定的元数据的类型无效。“ 我已经看到用SqlReader完成了这个,但是可以使用sqlReader来获取多个表吗? 如果我的第一个表是空的,我在SqlReader中看不到任何行。

SqlDataAdapter如何在内部工作?

我想知道SqlDataAdapter是如何在内部工作的,特别是在使用UpdateCommand来更新巨大的DataTable (因为它通常比从循环中发送sql语句快得多)。 这是我想到的一些想法: 它创建了一个准备好的sql语句(使用SqlCommand.Prepare() ),并填充了CommandText并使用正确的sql类型初始化了sql参数。 然后,它在需要更新的数据行上循环,并为每条记录更新参数值,并调用SqlCommand.ExecuteNonQuery() 。 它创建了一堆SqlCommand对象,里面填充了所有内容( CommandText和sql参数)。 然后将多个SqlCommands一次性批处理到服务器(取决于UpdateBatchSize )。 它使用一些特殊的,低级或无证的sql驱动程序指令,允许以有效的方式对多行执行更新(需要使用特殊数据格式和相同的sql查询(此处为UpdateCommand )提供要更新的行针对这些行中的每一行执行)。

无需安装的C ++数据库访问

我正在寻找一个数据库,我可以运行SQL语句而无需安装数据库服务器。 即我只需要在数据库文件和任何外部库中选择/插入/更新数据库。 这是我的情况: 我正在使用C ++来解析许多奇怪格式化的二进制文件,我想将它们存储到某种类型的数据库中,以便更方便地访问数据。 将文件插入数据库后,我将使用C#编写一个用户可以与数据库交互的接口/ GUI。 我正在使用C ++来读取文件的速度,因为我已经编写了那部分内容。 我正在使用C#,因为它更容易进行GUI编程。 这是我的要求: 数据库必须提供一种仅使用外部库在C ++中运行命令的方法(无需安装) 我应该能够将数据库移动到任何(类似的[Windows])计算机并运行我的应用程序 我相信这可以使用ADO或JET等MS Access * .mdb文件,但是,我想听一些替代方案。 请在答案中提供数据库和C ++引擎/库。 我的优先事项是: “精简版” -ness 性能(插入/选择的速度) 客户端代码简单(即设置起来容易) 谢谢你们。

在C#中处理多个数据库连接的最佳方法是什么?

如果说我需要针对两个单独的数据库运行两个单独的SQL语句。 现在我做(伪代码): Try{ declare variable connectionA to DatabaseA declare variable connectionB to DatabaseB connectionA.open() connectionB.open() declare variable SQLCmdA with ConnectionA and one SQL statement declare variable SQLCmdB with ConnectionB and another SQL statement SQLCmdA.executeNonQuery() SQLCmdB.executeNonQuery() } Catch () { print error message } Finally(){ connectionA.close() connectionB.close() SQLCmdA.Dispose() SQLCmdB.Dispose() } 以上看起来很笨拙。 如果我有三个不同的sql语句,我需要三个不同的SQLCmd变量。 是否有“标准”的方式来做这些事情,特别是在效率和绩效方面? 如果有人能提供一个简单的改进的伪代码,那就太好了。 另外,我是否需要担心实现连接池,以节省资源并加快程序的速度? 如果是这样,我在这种情况下如何实现它? […]