Tag: ado.net

.net连接池

我不明白常规连接和连接池之间的语法区别是什么。 当我使用using键时,例如: using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); command.ExecuteNonQuery(); } 这是执行连接池的方法吗?

我该如何多次插入多条记录?

我有一个名为Entry的类,声明如下: class Entry{ string Id {get;set;} string Name {get;set;} } 然后使用ADO.NET接受多个这样的Entry对象插入数据库的方法: static void InsertEntries(IEnumerable entries){ //build a SqlCommand object using(SqlCommand cmd = new SqlCommand()){ … const string refcmdText = “INSERT INTO Entries (id, name) VALUES (@id{0},@name{0});”; int count = 0; string query = string.Empty; //build a large query foreach(var entry in entries){ query += string.Format(refcmdText, […]

如何使用List 填充数据表

如何将列表转换为数据表 [Serializable] public class Item { public string Name { get; set; } public double Price { get; set; } public string @URL { get; set; } public Item(string Name, string Price, string @URL) { this.Name = Name; this.Price = Convert.ToDouble(Price); this.@URL = @URL; } public override string ToString() { return this.Name; } } 我试过用: […]

如何用多个表填充数据集?

我正在尝试填充包含2个具有一对多关系的表的DataSet。 我正在使用DataReader来实现这个目的: public DataSet SelectOne(int id) { DataSet result = new DataSet(); using (DbCommand command = Connection.CreateCommand()) { command.CommandText = “select * from table1”; var param = ParametersBuilder.CreateByKey(command, “ID”, id, null); command.Parameters.Add(param); Connection.Open(); using (DbDataReader reader = command.ExecuteReader()) { result.MainTable.Load(reader); } Connection.Close(); } return result; } 但我只填了一张桌子。 我如何实现目标 – 填写两个表格? 如果可能的话,我想使用DataReader而不是DataAdapter。

动态/编程地向SQL添加WHERE子句

如何以编程方式将搜索条件添加到SQL存储过程? 在我的应用程序(C#)中我正在使用存储过程(SQL Server 2008R2) ALTER PROCEDURE [dbo].[PROC001] @userID varchar(20), @password varchar(20) AS SELECT * FROM tUsers WHERE RTRIM(Name) = @userID AND RTRIM(Password) = @password 我希望通过更多条件扩展此查询,现在我不知道有多少条件将使用此查询,因为程序执行… 2,3,6或20.我想以编程方式添加这些条件,如: SELECT * FROM tUsers WHERE RTRIM(Name) = @userID AND RTRIM(Password) = @password AND Field2 = ‘1’ AND Field3 = ‘0’ OR Field4 ‘8’ AND Field5 < '100' …. 是否可以动态地向存储过程发送条件?

尽管使用了查询字符串,但在使用sql COUNT时,ExecuteNonQuery返回-1

出于某种原因,C#中的ExecuteNonQuery()返回-1 ,但是当我单独运行查询时,该值返回所需的实际值。 例如: try { var connString =”Data Source=ServerName;InitialCatalog=DatabaseName;Integrated Security=true;” SqlConnection conn = new SqlConnection(connString); SqlCommand someCmd = new SqlCommand(“SELECT COUNT(*) FROM SomeTable”); someCmd.Connection = conn; conn.Open(); var theCount = cmd.ExecuteNonQuery(); conn.Close(); } catch(Exception ex) { Console.WriteLine(ex.Message); } 执行命令时,返回-1 。 虽然如果单独运行查询, SELECT COUNT(*) FROM SomeTable; 如果要查询的表有4行,则列返回一行,计数为4 。

使用SQLCommand插入C#

将数据插入数据库的最佳方法是什么? 这就是我所拥有的,但这是错的.. cmd.CommandText = “INSERT INTO klant(klant_id,naam,voornaam) VALUES(@param1,@param2,@param3)”; cmd.Parameters.Add(new SqlParameter(“@param1”, klantId)); cmd.Parameters.Add(new SqlParameter(“@param2”, klantNaam)); cmd.Parameters.Add(new SqlParameter(“@param3”, klantVoornaam)); 该函数将数据添加到listBox中 http://www.pictourl.com/viewer/37e4edcf (link is dead) 但不进入数据库.. http://www.pictourl.com/viewer/4d5721fc (link is dead) 全function: private void Form1_Load(object sender, EventArgs e) { conn2 = new SqlConnection(); conn2.ConnectionString = ConfigurationManager.ConnectionStrings[“connSpionshopString”].ConnectionString; } private void button2_Click(object sender, EventArgs e) { string sqlCmd = “SELECT naam,voornaam,klant_id […]

如何将sqlparameter传递给IN()?

由于某种原因,我的IN()子句的Sqlparameter不起作用。 代码编译很好,如果我用实际值替换参数,查询就可以工作 StringBuilder sb = new StringBuilder(); foreach (User user in UserList) { sb.Append(user.UserId + “,”); } string userIds = sb.ToString(); userIds = userIds.TrimEnd(new char[] { ‘,’ }); SELECT userId, username FROM Users WHERE userId IN (@UserIds)

c#在SqlDataAdapter中使用Parameters.AddWithValue

如何将Parameters.AddWithValue与SqlDataAdapter一起使用。 下面搜索代码。 var da = new SqlDataAdapter(“SELECT * FROM annotations WHERE annotation LIKE ‘%”+txtSearch.Text+”%'”, _mssqlCon.connection); var dt = new DataTable(); da.Fill(dt); 我重写了这样的代码: SqlDataAdapter da; da = new SqlDataAdapter(“SELECT * FROM annotations WHERE annotation LIKE ‘%@search%'”, _mssqlCon.connection); da.SelectCommand.Parameters.AddWithValue(“@search”,txtSearch.Text); var dt = new DataTable(); da.Fill(dt); 但它失败了。

我们在MS-Access中有交易吗?

我正在使用C#.NET和MS-Access开发一个小型桌面应用程序。 我没有任何MS-Access的经验。 我想知道我们是否可以在Ms-Access中使用事务。 我有下面提到的情况。 插入Tbl1 插入Tbl2 我想只在插入tbl1成功时插入tbl2。 如果在tbl2中插入期间有一些exception,我想在tbl1中回滚插入。 我知道这可以很容易地在sql-server中实现,但是在ms-access的情况下,我应该如何管理它。 请帮助,提前致谢。