Вопрос о CRUD и просмотре данных, а есть ли и более простой способ?
Здравствуйте, у меня есть вопрос о создании запроса вставки. Есть ли способ, которым я могу это сделать?DBNull с int и datetime? Кроме того, я хотел бы знать, как наиболее эффективно я должен делать CRUD с C# WPF. В настоящее время я использую listview для просмотра моих данных из моей БД я использую SqlCommand и SqlDataReader, чтобы поместить мои данные в список<myobject> и я использую foreach, чтобы добавить список в listview. Мне интересно, должен ли я вместо этого использовать Datatable и, возможно, DataGrid?
Мне интересно, могу ли я использовать такой метод создания?
public static void CreateProduct(Product product) { using (SqlConnection connection = ConnectionString.GetSqlConnection()) { connection.Open(); string sqlCreate = "INSERT INTO Products (ProductName, ProductPrice, ProductQuantity, " + "ProductTax, ProductTotal, ProductListedDate, ProductPurchasedDate, UserID, ReceiptID " + "VALUES(@pn, @pp, @pq, @pta, @pto, @pld, @ppd, @uid, @rid)"; using (SqlCommand cmdCreate = new SqlCommand(sqlCreate, connection)) { cmdCreate.Parameters.AddWithValue("@pn", product.ProductName); cmdCreate.Parameters.AddWithValue("@pp", product.ProductPrice); cmdCreate.Parameters.AddWithValue("@pq", product.ProductQuantity); cmdCreate.Parameters.AddWithValue("@pta", product.ProductTax); cmdCreate.Parameters.AddWithValue("@pto", product.ProductTotal); cmdCreate.Parameters.AddWithValue("@pld", product.ProductListedDate); cmdCreate.Parameters.AddWithValue("@ppd", product.ProductPurchasedDate); cmdCreate.Parameters.AddWithValue("@uid", product.UserID); // ?? Convert.DBNull); cmdCreate.Parameters.AddWithValue("@rid", product.ReceiptID); cmdCreate.ExecuteNonQuery(); } } } //But this is the way I have my current create but I was wondering if I didn’t need @@IDENTITY public static int CreateNewUser(User newUser) { string SQLinsertQuery = "INSERT INTO Users (Username, Password, IsAdmin, UserCreatedDate) " + "VALUES(@username, @password, @isadmin, @usercreateddate)"; //SQL command SqlCommand cmdCreate = new SqlCommand(SQLinsertQuery, connection); cmdCreate.Parameters.AddWithValue("@username", newUser.Username); cmdCreate.Parameters.AddWithValue("@password", newUser.Password); cmdCreate.Parameters.AddWithValue("@isadmin", newUser.IsAdmin); cmdCreate.Parameters.AddWithValue("@usercreateddate", newUser.UserCreatedDate); try { connection.Open(); cmdCreate.ExecuteNonQuery(); string SQLselect = "SELECT @@IDENTITY FROM Users"; SqlCommand cmdSelect = new SqlCommand(SQLselect, connection); int userId = Convert.ToInt32(cmdSelect.ExecuteScalar()); return userId; } catch (SqlException sql) { sql.Message.ToString(); throw sql; } catch (Exception ex) { ex.Message.ToString(); return -1; } finally { connection.Close(); } }
Что я уже пробовал:
использование listview и других методов создания