Tag: ado.net

无数据存在时无效尝试读取

private void button1_Click(object sender, EventArgs e) { string name; name = textBox5.Text; SqlConnection con10 = new SqlConnection("con strn"); SqlCommand cmd10 = new SqlCommand("select * from sumant where username=@name"); cmd10.Parameters.AddWithValue("@name",name); cmd10.Connection = con10; cmd10.Connection.Open();//line 7 SqlDataReader dr = cmd10.ExecuteReader(); } if ( textBox2.Text == dr[2].ToString()) { //do something; } 当我debugging,直到第7行,这是可以的,但之后,博士抛出一个exception: Invalid attempt to read when no […]

ADO.Net EF – 如何在模型第一种方法中定义外键关系?

我一直有以前的问题关于类inheritance和围绕此构造一个数据库,并使用entity framework没有成功。 所以我试图在Visual Studio中创build实体,并查看它自动创build的数据库表。 我有一个实体MediaItem这是抽象和游戏inheritance这一点。 游戏有一个Console(Int),它对应于ConsoleID。 但是,当我生成数据库时,我得到一个额外的不需要的列(ConsoleTypes_ConsoleID)MediaItems_Game表内。 为什么是这样的,我怎样才能防止这种情况发生? 谢谢。

在什么情况下,SqlConnection会自动列入一个环境TransactionScope事务?

SqlConnection在事务中“入围”意味着什么? 这是否意味着我在连接上执行的命令将参与交易? 如果是这样的话,在什么情况下SqlConnection会自动列入一个环境TransactionScope事务? 请参阅代码注释中的问题。 我对每个问题答案的猜测都在括号内的每个问题之后。 场景1:打开连接在事务范围内 using (TransactionScope scope = new TransactionScope()) using (SqlConnection conn = ConnectToDB()) { // Q1: Is connection automatically enlisted in transaction? (Yes?) // // Q2: If I open (and run commands on) a second connection now, // with an identical connection string, // what, if any, is the relationship of […]

entity frameworkVS LINQ to SQL VS ADO.NET与存储过程?

你如何评价他们每个人的方面: 性能 发展速度 整洁,直观,可维护的代码 灵活性 总体 我喜欢我的SQL,所以一直是ADO.NET和存储过程的忠实拥趸,但是我最近和Linq to SQL玩了一阵子,被我写了DataAccess层的速度吓了一跳,决定花钱有一段时间,真正理解Linq到SQL或EF …或者都不是? 我只是想检查一下,这些技术没有太大的缺陷,会使我的研究时间毫无用处。 例如,性能很糟糕,简单的应用程序很酷,但只能带你到目前为止。 更新:您可以专注于EF VS L2S VS SP,而不是ORM VS SP。 我主要感兴趣的是EF VS L2S。 但是我也热衷于将它们与存储过程进行比较,因为SQl是我知道的很多东西。

快速插入200万行SQL Server

我必须从文本文件中插入大约200万行。 而插入我必须创build一些主表。 什么是最好的和快速的方式来插入如此大的数据到SQL Server?

从App.config获取连接string

var connection = ConnectionFactory.GetConnection( ConfigurationManager.ConnectionStrings["Test"] .ConnectionString, DataBaseProvider); 这是我的App.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration> 但是当我的项目运行这是我的错误: 你调用的对象是空的。

从SQL Server返回值使用c#插入命令

在Visual Studio中使用C#,我将一行插入到这样的表中: INSERT INTO foo (column_name) VALUES ('bar') 我想要做这样的事情,但我不知道正确的语法: INSERT INTO foo (column_name) VALUES ('bar') RETURNING foo_id 这将从新插入的行返回foo_id列。 此外,即使我find正确的语法,我有另一个问题:我有SqlDataReader和SqlDataAdapter在我的处置。 据我所知,前者是用来读取数据的,其次是用来处理数据的。 当用return语句插入一行时,我既操作又读取数据,所以我不确定要使用什么。 也许我应该用完全不同的东西呢?

实体对象不能被IEntityChangeTracker的多个实例引用。 同时在entity framework4.1中添加相关对象到实体

我正在尝试保存员工详细信息,该信息与城市有关。 但每次我尝试保存我的联系人,这是validation我得到exception“ADO.Netentity framework一个实体对象不能被多个IEntityChangeTracker实例引用” 我读过这么多的post,但仍然没有得到确切的想法做什么…我保存button点击代码如下 protected void Button1_Click(object sender, EventArgs e) { EmployeeService es = new EmployeeService(); CityService cs = new CityService(); DateTime dt = new DateTime(2008, 12, 12); Payroll.Entities.Employee e1 = new Payroll.Entities.Employee(); Payroll.Entities.City city1 = cs.SelectCity(Convert.ToInt64(cmbCity.SelectedItem.Value)); e1.Name = "Archana"; e1.Title = "aaaa"; e1.BirthDate = dt; e1.Gender = "F"; e1.HireDate = dt; e1.MaritalStatus = "M"; […]

什么时候添加SqlCommand参数时应该使用“SqlDbType”和“size”?

有一个相关的问题: 将parameter passing给SQLCommand的最佳方法是什么? 但我想知道这些差异是什么,以及是否有不同的方式有任何问题。 我通常使用这样的结构: using (SqlConnection conn = new SqlConnection(connectionString)) using (SqlCommand cmd = new SqlCommand(SQL, conn)) { cmd.CommandType = CommandType.Text; cmd.CommandTimeout = Settings.Default.reportTimeout; cmd.Parameters.Add("type", SqlDbType.VarChar, 4).Value = type; cmd.Connection.Open(); using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) { adapter.Fill(ds); } //use data } 现在有几种方法来添加cmd参数,我想知道哪个是最好的: cmd.Parameters.Add("@Name", SqlDbType.VarChar, 20).Value = "Bob"; cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = "Bob"; cmd.Parameters.Add("@Name").Value = […]

使用c#中的参数调用存储过程

我可以在我的程序中进行删除,插入和更新,并尝试通过调用从数据库创build的存储过程进行插入。 这个button插入我做得很好。 private void btnAdd_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(dc.Con); SqlCommand cmd = new SqlCommand("Command String", con); da.InsertCommand = new SqlCommand("INSERT INTO tblContacts VALUES (@FirstName, @LastName)", con); da.InsertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text; da.InsertCommand.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text; con.Open(); da.InsertCommand.ExecuteNonQuery(); con.Close(); dt.Clear(); da.Fill(dt); } 这是调用名为sp_Add_contact的过程来添加联系人的button的开始。 sp_Add_contact(@FirstName,@LastName)的两个参数。 我在谷歌search一个很好的例子,但我没有发现什么有趣的。 private void button1_Click(object sender, EventArgs e) { […]