Tag: ado.net

在C#中使用MySQL

这是我将数据打印到终端的代码: public static void WriteData() { string connString = “SERVER=localhost;” + “DATABASE=db;” + “UID=user;” + “PASSWORD=pass;”; MySqlConnection connection = new MySqlConnection(connString); MySqlCommand command = connection.CreateCommand(); MySqlDataReader reader; command.CommandText = “SELECT * FROM table1”; connection.Open(); reader = command.ExecuteReader(); while (reader.Read()) { for (int i = 0; i < reader.FieldCount; i++) Console.Write(reader.GetValue(i).ToString() + " "); Console.WriteLine(); } […]

SqlDataAdapter不会填充DataSet

我正在使用VS2012和SQL Server Express 2008.我已经简化了我的连接/查询,试图找出为什么我的DataSet没有被填充。 连接成功完成,并且不会抛出任何exception,但适配器不会填充DataSet 。 从中提取的数据库位于同一台PC上,使用localhost\SQLEXPRESS不会更改结果。 谢谢你的任何输入! SqlConnection questionConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[“DefaultConnection”].ConnectionString); questionConnection.Open(); String sql = “SELECT * FROM HRA.dbo.Questions”; SqlDataAdapter adapter = new SqlDataAdapter(); DataSet ds = new DataSet(); SqlCommand command = new SqlCommand(sql, questionConnection); adapter.SelectCommand = command; adapter.Fill(ds); adapter.Dispose(); command.Dispose(); questionConnection.Close(); 连接字符串:

如何在后台调用存储过程?

我有一个存储过程,大约需要2-3分钟才能完成执行。 从ado.net我想让存储过程执行在后台发生。我必须在向存储过程发出请求后立即返回我的代码。 谁可以帮我这个事 ?

从数据库smallint到C#nullable int的转换错误

我在smallint数据类型的数据库中有一个security_role_cd列。 我使用以下代码将此列选择为可以为nullable int变量。 我收到以下错误: 错误3无法确定条件表达式的类型,因为’null’和’short’之间没有隐式转换 克服此错误的正确代码是什么? SELECT R.security_role_cd FROM Security_Role R WHERE security_role_name = ‘Admin’ C# int? roleID = null; string commandText = “SELECT R.security_role_cd FROM Security_Role R WHERE security_role_name = @roleName”; SqlCommand command = new SqlCommand(commandText, connection); command.CommandType = System.Data.CommandType.Text; command.Parameters.AddWithValue(“@roleName”,roleName); SqlDataReader readerRole = command.ExecuteReader(); if (readerRole.HasRows) { while (readerRole.Read()) { roleID = readerRole.GetInt16(0) […]

如何在外部MS Access数据库更新的C#WinForms中收到通知?

我有一个DataGridView显示来自MS Access数据库的数据。 我正在使用带有TableAdapter和BindingSource的DataSet将数据链接到DataGridView : tableAdapter = new AccountsTableAdapter(); dataTable = new Accounts.AccountsDataTable(); tableAdapter.Fill(dataTable); tableBindingSource = new BindingSource(); tableBindingSource.DataSource = dataTable; dataGridView1.DataSource = tableBindingSource; 我想知道当从我的应用程序外部修改数据库表时如何检测或获得通知 – 从Access界面或其他应用程序对数据库执行的行更新,插入,删除。 此外,根据此假定通知,如何更新我的DataSet以便仅更新受影响的行 – >仅接收新插入的行,已修改的行的受影响的字段值以及已删除的索引。 所以,基本上,我想要获得的是一种将数据库表与DataGridView同步的方法。 我已经设法将我在DataGridView修改或插入的行保存到数据库中,现在能够执行此数据库的互惠端 – 查看绑定会很好。

Size属性的大小无效

这是我的SP: CREATE PROCEDURE _insertAdminProfile ( @Ad_Fname VARCHAR(25), @Ad_Lname VARCHAR(25), @Ad_DOB DATE, @Ad_Sex VARCHAR(25), @Ad_Address VARCHAR(200), @Ad_Phone VARCHAR(12), @Ad_Email VARCHAR(25), @Ad_Pwd VARCHAR(7) OUTPUT ) AS BEGIN DECLARE @MyTableVar TABLE (Ad_Pwd VARCHAR(7)); INSERT INTO dbo.Admin_Profile (Ad_Fname, Ad_Lname, Ad_DOB, Ad_Sex,Ad_Address,Ad_Phone,Ad_Email) OUTPUT INSERTED.Ad_Regid INTO @MyTableVar VALUES (@Ad_Fname, @Ad_Lname, @Ad_DOB, @Ad_Sex, @Ad_Address, @Ad_Phone, @Ad_Email) SELECT @Ad_Pwd = Ad_Pwd FROM @MyTableVar […]

参数化查询

我是新的Visual C#,我对如何编写参数化查询感到困惑。 这是没有它们的代码, using System; using System.Windows.Forms; using System.Data.SqlClient; namespace Insert_Data { public partial class Form1 : Form { private void button1_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(“Data Source=ZTABASSUM\\SQLEXPRESS01;Initial Catalog=IntroDataBase;Integrated Security=True”); con.Open(); SqlCommand sc = new SqlCommand(“Insert into employee values (‘”+ textBox1.Text +”‘ , ” + textBox2.Text + “, ‘” + textBox3.Text […]

包含相同对象列表的对象的entity framework映射

目前在我的代码中,我正在做这样的事情 public class Subject { private List _prerequisites; } 一个科目可以有许多先决条件(也是科目),科目可以是许多科目的先决条件。 我们最初使用类型化数据集将数据保存到数据库,我们的表看起来像这样: 我们现在想要从使用类型化数据集迁移到entity framework,但我不确定如何创建映射。 从数据库生成EF并不真正起作用,因为它只丢弃每个表并使用外键作为导航属性。 据我所知,EF不需要另一个实体来实现多对多的关系。 如果有人可以提供帮助,那就太好了! 干杯!

C#:如何以编程方式将SQL脚本导入数据库?

我是否必须手动解析SQL脚本并单独执行每个语句还是有更好的方法吗? Iam寻找以编程方式解决方案,我知道有些工具已经能够做到这一点。 如果解决方案适用于所有数据库系统,而不仅仅是sqlite,那将是一件好事。

如何在C#中获取存储过程返回值?

我有一个存储过程执行某些操作并返回1或0,如下所示 CREATE PROCEDURE dbo.UserCheckUsername11 ( @Username nvarchar(50) ) AS BEGIN SET NOCOUNT ON; IF Exists(SELECT UserID FROM User WHERE username =@Username) return 1 ELSE return 0 END 在C#我希望得到这个返回值我尝试ExcuteScalar但它没有返回任何值(我知道如果我用Select 0替换return 0 Select 0 ExcuteScalar会捕获它..但它是否允许我获得返回值的任何方式用select替换return ? 注意:我也不想用户存储过程输出参数