Tag: sql

获取表的架构

给定一个SQLConnection对象,如何获得单个表的模式? 前几天我正在尝试这个,我似乎能够从运行查询得到的DataSet中获取模式,但是我从连接中获得的所有模式信息似乎都与可用的表有关而不是表格的实际细节。 我确信有一种简单的方法可以做到这一点。

执行存储为资源的SQL脚本

我想在我的解决方案中存储冗长的.sql脚本并以编程方式执行它们。 我已经弄清楚如何执行包含我的sql脚本的字符串,但我还没想出如何从存储在解决方案中的文件中读取字符串(例如,在/ Scripts子文件夹下)。

如何给出ADO.NET参数

我想创建一个向DB添加记录的SQL命令。 我尝试了以下代码,但它似乎没有工作: SqlCommand comand = new SqlCommand(“INSERT INTO Product_table Values(@Product_Name,@Product_Price,@Product_Profit,@p)”, connect); SqlParameter ppar = new SqlParameter(); ppar.ParameterName = “@Product_Name”; ppar.Value = textBox1.Text; MessageBox.Show(“Done”); comaand.Parameters.Add(ppar);

数据适配器与Sql命令

哪一个在执行ms-sql数据库的insert语句时会更好: Sql DataAdapter或SQL命令对象? 哪个更好, inserting only one row并inserting multiple rows ? 代码使用的一个简单示例: SQL命令 string query = “insert into Table1(col1,col2,col3) values (@value1,@value2,@value3)”; int i; SqlCommand cmd = new SqlCommand(query, connection); // add parameters… cmd.Parameters.Add(“@value1”,SqlDbType.VarChar).Value=txtBox1.Text; cmd.Parameters.Add(“@value2”,SqlDbType.VarChar).Value=txtBox2.Text; cmd.Parameters.Add(“@value3”,SqlDbType.VarChar).Value=txtBox3.Text; cmd.con.open(); i = cmd.ExecuteNonQuery(); cmd.con.close(); SQL数据适配器 DataRow dr = dsTab.Tables[“Table1”].NewRow(); DataSet dsTab = new DataSet(“Table1”); SqlDataAdapter adp = new SqlDataAdapter(“Select […]

如果我调用SqlReader.Read,应该调用SqlDataReader.HasRows

试着看看在while (dr.read())函数之前添加if (dr.HasRows)是否有益。 我的意思是,从技术上讲,如果它没有行,它就不会读取,所以如果你先检查它会有关系吗? using (SqlDataReader dr = cmd.ExecuteReader()) { if (dr.HasRows) { while (dr.Read()) { ….do stuff here } } } 或者如果你只是确保它具有提供的价值,这基本上会做同样的事情…… using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { ….do stuff here } }

CLR在SQL Server内部组装C#

是否有可能在C#中创建一个大项目(很多函数),然后, 然后,为它创建CLR程序集 在SQL Server IN STORED PROC中,调用程序集中的函数, 该表(我将传递给ASSEMBLY)在其他存储过程中计算… 如果是这样,步骤是什么? 我在想这样的事情。 — I have a stored proc that gets a table, let it be myStoredProcTable –FIST ENABLE DATA ACCESS EXEC sp_serveroption ‘TheServerName’, ‘DATA ACCESS’, TRUE –main.sql calls yStoredProcTable.sql and the calls functionAssembly SELECT * INTO #tmpTable FROM OPENQUERY(SERVERNAME, ‘EXEC test.dbo.myStoredProcTable 1’) — pass the table to […]

EF5 db.Database.SqlQuery映射返回的对象

我有两个C#类 public class SearchResult { public int? EntityId { get; set; } public string Name { get; set; } public Address RegisteredAddress { get; set; } } 和 public class Address { public int? AddressId { get; set; } public string Address1 { get; set; } public string Address2 { get; set; } public string […]

数据不会永久保存到SQL表

我在Visual Studio Express 2012中使用C#作为WPF应用程序。我按照此处的教程进行操作。 我创建了一个testDb.mdf本地基于服务的数据库。 我打开应用程序,输入文本,点击添加,数据添加到数据库。 我只知道这个,因为我将一个字段设置为主键并且是唯一的。 如果我再次尝试添加相同的东西,我会收到错误消息,说它已经存在。 当我退出应用程序时,数据库中没有任何显示。 我输入的数据消失了。 为什么数据不是永久性的? 这是我用于单击按钮的代码: private void Add_Click(object sender, RoutedEventArgs e) { SqlConnection cn = new SqlConnection(global::testdb.Properties.Settings.Default.testDBConnectionString); try { string sql = “INSERT INTO Test (TestInsert) Values(‘” + txtName.Text + “‘)”; SqlCommand cmd = new SqlCommand(sql, cn); cn.Open(); cmd.ExecuteNonQuery(); MessageBox.Show(“Added new record”, “Message”, MessageBoxButton.OK); } catch (Exception ex) […]

在组连接linq查询中将字符串转换为十进制

我必须连接两个表,但只返回第二个表中的那些记录,其中与第一个表中的记录关联的所有记录的“值”总和是相同的。 from p in db.TPs join n in db.TNs on p.Key equals n.Key where (decimal.Parse(p.Value) == db.TNs.Where( nn => nn.Key == p.Key ) .Sum( nn=> decimal.Parse(kk.Value))) 我正在使用Entity Framework Code-First。 当然,Linq抱怨道 LINQ to Entities无法识别方法’System.Decimal Parse(System.String)’方法 表很大,我必须减少输出,因此无法在客户端进行此转换。 列类型转换也不是一种选择。 SQL查询是: select * from TP as p join * from TN as n on n.Key = p.Key where p.Value […]

无法打开物理文件操作系统错误32

那么我这样做了以下来得到错误,没有线索为什么数据库连接失败。 创建一个新的ASP.NET网站 将新的* .mdf数据库添加到App_Data 使用Visual Studio中的服务器资源管理器向其中添加一些表 右键单击“数据库”和“复制连接”字符串。 将其插入WebConfig文件,如下所示 添加一些代码来获取数据 selectStatement = “select * from users”; SqlDataAdapter da = new SqlDataAdapter(selectStatement, ConfigurationManager.ConnectionStrings[“DB”].ConnectionString); DataTable dtUsers = new DataTable(); da.Fill(dtUsers); GridView1.DataSource = dtUsers.DefaultView; GridView1.DataBind(); 和zoot你得到错误