Tag: ado.net

使用ADO.NETentity framework时出错

我想将列表转换为EntityCollection。 List x = methodcall(); EntityCOllection y = new EntityCollection(); foreach(T t in x) y.Add(t); 我收到这个错误。 无法将对象添加到EntityCollection或EntityReference。 附加到ObjectContext的对象无法添加到与源对象无关的EntityCollection或EntityReference。 有人知道这个错误吗?

无法创建通用方法:找不到“T”

我试图实现一个返回通用列表(List)的方法,但我不断收到此错误消息: 找不到类型或命名空间名称’T’(您是否缺少using指令或程序集引用?) 这是我的方法代码: public static List doQuery(string query) { SQLiteCommand com = new SQLiteCommand(query, SQLiteManager.connection); SQLiteDataReader reader = com.ExecuteReader(CommandBehavior.Default); while (reader.Read()) { //other code } } 为什么在这种情况下T不被识别为通用类型?

如果ObjectDataSource不是大型应用程序的答案,那是什么?

引用Andrew Hare对此 问题的回答 。 对象数据源适用于小型项目,但由于您在应用程序的UI层中嵌入数据层信息,因此它们无法很好地扩展。 我建议您只将它们用于非常小的应用程序和便笺式测试。 如果您做出设计决定使用它们,请准备好在将来解决扩展和维护问题。 应用程序架构=可维护性+可伸缩性+ …… 我认为,我读过的每篇开始学习应用程序架构的文章都使用了一些类来构建业务数据层,并使用ObjectDataSource将表示层与业务层连接起来。 看起来我错了。 什么是用于业务层及其与表示层的连接的最佳方法?

存储过程需要一个我已经传入的参数

我试图使用此声明执行存储过程: ALTER PROCEDURE [dbo].[getByName] @firstName varchar, @lastName varchar AS … 我在C#中调用如下: public List GetPersonByName(string first, string last) { var people = new List(); var connString = ConfigurationManager.ConnectionStrings[“MyDbConnString”].ConnectionString; using (var conn = new SqlConnection(connString)) { using (var cmd = new SqlCommand(“dbo.getByName”,conn)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter(“@firstName”, SqlDbType.VarChar, 50)).Value = first; cmd.Parameters.Add(new SqlParameter(“@lastName”, SqlDbType.VarChar, 50)).Value = […]

SQL Server中的DateTime问题

我正在尝试对MS SQL Server中已设置的数据库执行INSERT,数据库服务器位于共享主机(godaddy)中。 而我想要实现的是将文章存储到数据库中,但每次我发布或获取文章的预览时服务器都会抛出我 SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlTypes.SqlTypeException: SqlDateTime overflow. Must be between […]

如果安装了SQL Server(标准版),如何通过代码获取服务器名称

如果安装了SQL Server(标准版),如何通过代码获取服务器名称。 我们在创建连接字符串时传递服务器名称以连接SQL Server。 我们可以通过代码检索这个值吗? string sqlConnectionString = string.Format( “user id={0};password={1};server={2};Trusted_Connection=no;database=TestDB; connection timeout={3}”, dirDBinfo.UserName, dirDBinfo.Password, “ServerName”, dirDBinfo.TimeOut);

SQLCommand方法ExecuteScalar()返回什么数据类型?

在SQL Server中,ID是非空整数和标识。 当我运行以下代码时,我在最后一行得到一个InvalidCastException: SqlCommand cmd = new SqlCommand(); cmd.Connection = _conn; cmd.CommandText = @”INSERT INTO [Users] (Name, Email, Password) VALUES (@name, @email, @pass); SELECT SCOPE_IDENTITY()”; cmd.Parameters.AddWithValue(“@name”, newUser.Name); cmd.Parameters.AddWithValue(“@email”, newUser.Email); cmd.Parameters.AddWithValue(“@pass”, newUser.PasswordHash); int id = (int)cmd.ExecuteScalar(); 什么是ExecuteScalar()在这里返回? 无论它返回什么,都有一个ToString()使它看起来像一个数字,所以这个可怕的代码行工作: int id = Int32.Parse(cmd.ExecuteScalar().ToString());

将DataTable作为参数传递给存储过程

我有一个用C#创建的数据表。 DataTable dt = new DataTable(); dt.Columns.Add(“Name”, typeof(string)); dt.Columns.Add(“Age”, typeof(int)); dt.Rows.Add(“James”, 23); dt.Rows.Add(“Smith”, 40); dt.Rows.Add(“Paul”, 20); 我想将此传递给以下存储过程。 CREATE PROCEDURE SomeName(@data DATATABLE) AS BEGIN INSERT INTO SOMETABLE(Column2,Column3) VALUES(……); END 我的问题是:我们如何将这3个元组插入SQL表? 我们需要使用点运算符访问列值吗? 或者还有其他方法吗?

DataGridView – 当我按下输入它进入下一个单元格

我有一个5列的datagridview,当我按“enter”它进入下一个单元格,当它到达行的末尾,当我按Enter键它添加一个新的行,但我的问题是当我移动到上一个我按下后输入它跳行,不会去下一个单元格,任何帮助? public partial class Form1 : Form { public static int Col; public static int Row; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { dataGridView1.AllowUserToAddRows = false; dataGridView1.Rows.Add(); } private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { Col = dataGridView1.CurrentCellAddress.X; Row = dataGridView1.CurrentCellAddress.Y; } private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if […]

SQLite错误Mono.Data.Sqlite.SqliteStatement.BindParameter中提供给命令的参数不足

我有一个简单的插入语句到MonoDroid上的SQLite数据库中的表。 它说,当插入数据库时 SQLite错误Mono.Data.Sqlite.SqliteStatement.BindParameter中提供给命令的参数不足 我认为有一个错误,或错误消息是误导。 因为我只有5个参数而且我提供了5个参数,所以我看不出这是怎么回事。 我的代码如下,任何帮助将不胜感激。 try { using (var connection = new SqliteConnection(ConnectionString)) { connection.Open(); using (var command = connection.CreateCommand()) { command.CommandTimeout = 0; command.CommandText = “INSERT INTO [User] (UserPK ,Name ,Password ,Category ,ContactFK) VALUES ( @UserPK , @Name , @Password , @Category , @ContactFK)”; command.Parameters.Add(new SqliteParameter(“@Name”, “Has”)); command.Parameters.Add(new SqliteParameter(“@Password”, “Has”)); command.Parameters.Add(new SqliteParameter(“@Cateogry”, “”)); […]