Tag: sql

参数化SQL查询

很多关于SQL中带有C#的参数的post,但我仍然遗漏了一些东西。 我没有收到错误消息但没有插入数据。 缺什么? 我有名为fname,lname,address,city,state和zip的文本框。 private void enter_button_Click(object sender, EventArgs e) { string first, last, addy, city1, stat, zippy; first = fname.Text; SqlParameter firstparam; firstparam = new SqlParameter(); firstparam.ParameterName = “@first”; firstparam.Value = first; last = lname.Text; SqlParameter lastparam; lastparam = new SqlParameter(); lastparam.ParameterName = “@last”; lastparam.Value = last; addy = address.Text; SqlParameter addressparam; addressparam = […]

通用LINQ查询谓词?

不确定这是否可行,或者我是否正确地表达了我正在寻找的内容,但我在我的库中反复使用以下代码,并希望练习一些DRY。 我根据用户提供的简单搜索字段ala Google查询了一组SQL Server表。 我正在使用LINQ根据搜索字符串中的内容组成最终查询。 我正在寻找一种方法来使用generics并传递lambda函数来创建一个可重用的例程: string[] arrayOfQueryTerms = getsTheArray(); var somequery = from q in dataContext.MyTable select q; if (arrayOfQueryTerms.Length == 1) { somequery = somequery.Where( e => e.FieldName.StartsWith(arrayOfQueryTerms[0])); } else { foreach(string queryTerm in arrayOfQueryTerms) { if (!String.IsNullOrEmpty(queryTerm)) { somequery = somequery .Where( e => e.FieldName.Contains(queryTerm)); } } } 我希望创建一个带签名的generics方法,它看起来像: private IQueryable getQuery( […]

从SQL Server数据库填充DataTable

这个对我来说是一个谜,我知道我从其他人那里得到的代码,在我的例子中,它返回的数据表是空的 conSTR是连接字符串,设置为全局字符串 public DataTable fillDataTable(string table) { string query = “SELECT * FROM dstut.dbo.” +table; SqlConnection sqlConn = new SqlConnection(conSTR); sqlConn.Open(); SqlCommand cmd = new SqlCommand(query, sqlConn); DataTable dt = new DataTable(); dt.Load(cmd.ExecuteReader()); sqlConn.Close(); return dt; } 编辑1 整点是稍后在tabcontrol的数据网格视图中显示此表,这里是在tabcontrol C#中显示多个数据表的问题 这里只显示一个空白的数据网格视图 编辑2 尝试了所有这些,当我尝试显示表时,datagridview为空,具有适当数量的行但现在值

如何将List 转换为Sql In语句的SqlParameter?

我似乎对如何使用SqlParameter执行In语句感到困惑。 到目前为止,我有以下代码: cmd.CommandText = “Select dscr from system_settings where setting in @settings”; cmd.Connection = conn; cmd.Parameters.Add(new SqlParameter(“@settings”, settingList)); reader = cmd.ExecuteReader(); settingsList是List 。 当cmd.ExecuteReader() ,由于无法将List映射到“已知的提供者类型”,因此出现ArgumentException 。 如何(安全地)使用SqlCommand执行In查询?

C#using语句,SQL和SqlConnection

这是否可以使用using语句C#SQL? private static void CreateCommand(string queryString, string connectionString) { using (SqlConnection connection = new SqlConnection( connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); command.Connection.Open(); command.ExecuteNonQuery(); } } 如果打开连接时出错,该怎么办? using语句是try和finally 没有捕获 因此,如果我抓到外面的使用支架,捕获器会捕获连接打开错误吗? 如果没有,如何using上面显示的using语句实现这一点?

用于Microsoft Access 2010.accdb的SQL连接字符串

我正在使用winforms进行简单的登录表单,并在C#中访问2010数据库(.accdb)。 我有以下代码,似乎连接字符串是错误的。 我试过搜索,发现.Jet用于访问07 ?? 但这似乎也没有用。 我是数据库的业余爱好者(代码来自msdn)。 我很难理解我应该在这个例子中使用哪个。 访问表名称:哈哈 ID(PK)| 密码 ———————– 1 | 测试 System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(@”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\BC207\test.accdb”); System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand(); comm.CommandText = “SELECT HAHA(*) FROM password”; comm.CommandType = CommandType.Text; comm.Connection = conn; conn.Open(); Object returnValue = comm.ExecuteScalar(); conn.Close(); MessageBox.Show((string)returnValue); 编辑:表的名称是密码,我想要获取值的字段是ID。 SQL语句我把它写成: SELECT ID FROM password 是的,表中只有一个字段中只有一条记录作为主键。 无论如何,问题是程序在第一行执行时挂起 -> Keyword not […]

必须声明表变量@table

我是C#和SQL的初学者,我有这个我要执行的SQL插入语句。 它要求我要插入的其他变量中的表名。 但是,当我运行此控制台应用程序时,我收到此错误: 必须声明表变量@table 这是代码的一部分: StreamReader my_reader = getFile(args); string CS = formCS(); try { using (SqlConnection con = new SqlConnection(CS)) { SqlCommand com = new SqlCommand(“insert into @table (time, date, pin) values (@time, @date, @pin)”, con); con.Open(); Console.WriteLine(“Enter table name:”); Console.Write(“>> “); string tblname = Console.ReadLine(); com.Parameters.AddWithValue(“@table”, tblname); string line = “”; int count […]

使用Entity Framework 6调用DB函数

我按照这些说明将标量函数添加到我的Entity Framework 6数据模型中。 如何使用带有linq的标量值函数实体? 但是,我无法在LINQ查询中调用该函数,尽管直接在DataContext上调用该方法也可以。 using (Entities context = new Entities()) { // This works. var Test1 = context.fn_GetRatingValue(8, 9, 0).FirstOrDefault(); // This doesn’t work. var Test2 = (from r in context.MediaRatings select context.fn_GetRatingValue(r.Height, r.Depth, 0)).ToList(); } 第二个查询抛出此错误。 LINQ to Entities does not recognize the method ‘System.Data.Entity.Core.Objects.ObjectResult`1[System.Nullable`1[System.Single]] fn_GetRatingValue(System.Nullable`1[System.Single], System.Nullable`1[System.Single], System.Nullable`1[System.Single])’ method, and this method cannot […]

将安全的SQL语句创建为字符串

我正在使用C#和.NET 3.5。 我需要生成并存储一些T-SQL插入语句,稍后将在远程服务器上执行。 例如,我有一个Employees数组: new Employee[] { new Employee { ID = 5, Name = “Frank Grimes” }, new Employee { ID = 6, Name = “Tim O’Reilly” } } 我需要最终得到一个字符串数组,如下所示: “INSERT INTO Employees (id, name) VALUES (5, ‘Frank Grimes’)”, “INSERT INTO Employees (id, name) VALUES (6, ‘Tim O”Reilly’)” 我正在查看一些使用String.Format创建insert语句的代码,但这感觉不对。 我考虑使用SqlCommand(希望做这样的事情 ),但它没有提供将命令文本与参数组合的方法。 仅仅替换单引号并构建字符串就足够了吗? string.Format(“INSERT INTO […]

INSERT上的返回ID?

我有一个INSERT查询,我希望DB返回刚刚插入的行的ID。 sqlString = “INSERT INTO MagicBoxes (OwnerID, Key, Name, Permissions, Active, LastUpdated) VALUES (@OwnerID, @BoxKey, @BoxName, 0, 1, @Date) SET @ID = SCOPE_IDENTITY();”; cmd = new SqlCommand(sqlString, con); cmd.Parameters.AddWithValue(“@OwnerID”, OwnerID); cmd.Parameters.AddWithValue(“@BoxKey”, BoxKey); cmd.Parameters.AddWithValue(“@BoxName”, BoxName); cmd.Parameters.AddWithValue(“@Username”, Username); cmd.Parameters.AddWithValue(“@Date”, DateTime.Now); cmd.ExecuteNonQuery(); 我目前有这个,我不确定接下来需要做什么……